热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springCLoud——Eureka详解+例子

目录1、Eureka基础知识(1)服务治理(2)服务注册(3)EurekaServer(

目录

1、Eureka基础知识

(1)服务治理

(2)服务注册

(3)Eureka Server

(4)Eureka Client

2、搭建Eureka服务端

(1)创建maven工程

 (2)导入依赖

(3)配置application.yml

(4)创建主启动类

(5)启动Eureka注册中心

 3、搭建服务提供者

(1)创建maven工程

(2)导入依赖

 (3)配置application.yml

(4)创建启动类

(5)创建controller

(6)测试该服务

4、搭建服务消费者

(1)创建maven工程

 (2)导入依赖

(3)配置application.yml

(4)创建主启动类

(5)创建配置类配置远程调用

(6)创建controller

5、整体测试




1、Eureka基础知识


(1)服务治理


管理服务与服务之间的依赖关系,以实现服务调用,负载均衡,容错等,实现服务注册与服务发现。



(2)服务注册


在服务注册与发现中,有一个注册中心,当服务启动时,会将该服务的相关信息注册到注册中心上去。

如:服务url地址,服务消费者会以该别名方式去注册中心上获取对应服务,进而进行远程调用。


 


(3)Eureka Server


提供服务注册,个微服务节点启动后,会在注册中心上注册相关信息,服务节点可以在界面中直观看到。



(4)Eureka Client


java客户端,客户端默认使用轮询负载均衡,在应用启动后,会向server发送心跳,若server端在多个心跳周期中未发现该服务,会自动将其移除注册表。 



2、搭建Eureka服务端


(1)创建maven工程


 (2)导入依赖


导入Eureka服务端、web模块依赖


org.springframework.cloudspring-cloud-starter-netflix-eureka-serverorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuator

(3)配置application.yml


①服务端口为7001;

②Eureka服务端主机名;

③Eureka客户端:

register-with-eureka:是否在服务中心注册

fetchRegistry:是否可以在注册中心被发现

service-url:服务中心url地址


server:port: 7001eureka:instance:hostname: localhostclient:register-with-eureka: falsefetchRegistry: falseservice-url:defaultZone: http://localhost:7001/eureka

(4)创建主启动类


@EnableEurekaServer:Eureka服务端注解


@SpringBootApplication
@EnableEurekaServer
public class Eureka7001 {public static void main(String[] args) {SpringApplication.run(Eureka7001.class,args);}
}

(5)启动Eureka注册中心


访问http://localhost:7001



 3、搭建服务提供者


(1)创建maven工程


(2)导入依赖


导入Eureka客户端、web模块、监控依赖


org.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuator

 (3)配置application.yml


①配置服务端口号为8003;

②配置服务应用名称;

③配置Eureka注册中心,开启注册,指明注册中心地址。


server:port: 8003spring:application:name: provider8003eureka:client:register-with-eureka: truefetchRegistry: trueservice-url:defaultZone: http://localhost:7001/eureka

(4)创建启动类


@EnableEurekaClient:指明该服务为Eureka客户端


@SpringBootApplication
@EnableEurekaClient
public class Provider8003 {public static void main(String[] args) {SpringApplication.run(Provider8003.class,args);}
}

(5)创建controller

@RestController
public class HelloController {@GetMapping("/hello")public String hello(){return "Hello,Eureka";}
}

(6)测试该服务


启动访问http://localhost:8003/hello

可以发现注册中心已经注册该服务


 

 


4、搭建服务消费者


(1)创建maven工程


 (2)导入依赖


导入Eureka客户端、web、监控依赖


org.springframework.cloudspring-cloud-starter-netflix-eureka-clientorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuator

(3)配置application.yml


①配置服务·端口号为8004;

②配置服务名称为:Consumer8004;

③配置Eureka客户端,开启注册。配置注册中心地址。


server:port: 8004spring:application:name: Consumer8004eureka:client:register-with-eureka: truefetchRegistry: trueservice-url:defaultZone: http://localhost:7001/eureka

(4)创建主启动类


开启Eureka客户端


@SpringBootApplication
@EnableEurekaClient
public class Consumer8004 {public static void main(String[] args) {SpringApplication.run(Consumer8004.class,args);}
}

(5)创建配置类配置远程调用


@LoadBalanced:负载均衡注解


@Configuration
public class ResConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}
}

(6)创建controller


①PROVIDER8003:服务提供者的名称,其在注册中心上注册,可以通过该名称找到对应ip地址;

②restTemplate.getForObject(”远程调用服务ip地址“,“调用服务方法返回类型”)


@RestController
public class HelloController {//调用服务地址private final static String url="http://PROVIDER8003";@AutowiredRestTemplate restTemplate;@GetMapping("consumer")public String hello(){return restTemplate.getForObject(url+"/hello",String.class);}
}

5、整体测试


①启动Eureka7001

②启动服务提供者Provider8003

③启动服务消费者Consumner8004

④访问http://loaclhost:8004/hello

结果如下:


 

 测试成功!!!


推荐阅读
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 基于Axis、XFire、CXF的webservice客户端调用示例
    本文介绍了如何使用Axis、XFire、CXF等工具来实现webservice客户端的调用,以及提供了使用Java代码进行调用的示例。示例代码中设置了服务接口类、地址,并调用了sayHello方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
author-avatar
晓雷sky
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有