SpringCloud微服务(三)之Eureka服务注册于发现
2020-06-05 09:02
155 查看
文章目录
一、什么是Eureka
- Eureka是一个基于REST的服务,主要用于AWS云中的定位服务,以实现中间层服务器的负载平衡和故障转移
- 在 Spring Cloud 微服务架构中通常用作注册中心
- 我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client
- Eureka架构:
二、创建Eureka模块
- 导入依赖
- 编写配置文件
server: port: 7001 #Eureka配置 eureka: instance: hostname: hostname #Eureka服务端的实例名称 client: register-with-eureka: false # 表示是否向eureka注册中心注册自己 fetch-registry: false #fetch-registry如果为false,则表示自己为注册中心 service-url: # 单机: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 集群(关联):defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
- 启动类注解开启功能 @EnableXXX
- 进去Eureka客户端 http://localhost:7001/
三、服务提供者
服务注册
- 注入依赖
- 配置文件 配置Eureka
#Eureka的配置,服务注册到哪里 eureka: client: service-url: defaultZone: http://hostname:7001/eureka/ instance: instance-id: springcloud-provider-dept8001 # 修改eureka上的默认描述信息! prefer-ip-address: true # true,可以显示服务的IP地址 ~
- 配置启动类 @EnableEurekaClient//服务启动后自动注册到Enable中
- 查看是否注入进去
信息配置(扩展)
- 注入actuator…依赖
- 配置文件配置info
#info配置 info: app.name: kuangshen-springcloud company.name: blog.kuangstudy.com
- 客户端可以查看用户信息
获取服务信息(扩展)
- controller层:
//获取一些配置的信息,得到具体的微服务! @Autowired private DiscoveryClient client; //注册进来的微服务~,获取一些消息~ @GetMapping("/dept/discovery") public Object discovery(){ //获取微服务列表的清单 List<String> services = client.getServices(); System.out.println("discovery=>services:"+services); //得到一个具体的微服务信息,通过具体的微服务id,applicaioinName; List<ServiceInstance> instances = client.getInstances("SPRINGCLOUD-PROVIDER-DEPT"); for (ServiceInstance instance : instances) { System.out.println( instance.getHost()+"\t"+ instance.getPort()+"\t"+ instance.getUri()+"\t"+ instance.getServiceId() ); } return this.client; }
- 启动类配置EnableDisCoveryClient
自我保护机制(拓展)
某一时刻一个微服务不能用了,erueka不会立刻清理,依旧会对该微服务的信息进行保存。
四、Eureka集群配置
- 多创建几个Eureka模块7001、7002、7003
- 修改配置文件、修改包名等
- 每个Eureka模块的配置文件:
server: port: 7001 #Eureka配置 eureka: instance: hostname: eureka7001.com #Eureka服务端的实例名称 client: register-with-eureka: false # 表示是否向eureka注册中心注册自己 fetch-registry: false #fetch-registry如果为false,则表示自己为注册中心 service-url: # 单机: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 集群(关联): defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
- 服务提供端配置文件
#Eureka的配置,服务注册到哪里 eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ instance: instance-id: springcloud-provider-dept8001 # 修改eureka上的默认描述信息! prefer-ip-address: true # true,可以显示服务的IP地址 ~
CAP原则及与zookeeper的对比
- CAP: C:强一致性
- A:可用性
- P:分区容错性
因为选取Leader的时候属于不可用状态,所以不能保证可用性
相关文章推荐
- Spring Cloud(1)服务治理:Eureka服务注册与服务发现
- Spring Cloud Eureka 服务注册与发现
- Spring Cloud构建微服务架构:Eureka服务注册与发现
- Spring Cloud-02服务发现与服务注册Eureka + Eureka Server的搭建
- SpringCloud微服务实战---服务的注册和发现(Eureka)
- Spring Cloud中的Eureka服务注册与发现
- SpringCloud——服务注册与发现Eureka以及注册源码解析
- SpringCloud 服务的注册与发现Eureka
- SpringCloud与微服务Ⅴ --- Eureka服务注册与发现
- 《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka的常用配置
- Spring Cloud:服务注册与发现(Eureka)【Dalston版】
- SpringCloud学习记录(1)— Eureka 服务的注册与发现(Finchley篇)
- Spring cloud Eureka服务注册及发现(二)创建注册服务
- spring cloud 服务注册于发现(eureka)
- Spring Cloud-02服务发现与服务注册Eureka + Eureka Server的搭建
- SpringCloud服务注册与发现Eureka
- 图灵学院:【微服务架构】SpringCloud之Eureka(服务注册和服务发现基础篇)(二)
- 三、SpringCloud之服务注册与发现组件--Eureka
- SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)
- SpringCloud之服务注册与发现Eureka+客户端Feign