06 Eureka详解

06 Eureka详解

1.基础架构

Eureka架构中的三个核心角色:

  • 服务注册中心

Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-server

  • 服务提供者

提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即 可。本例中就是我们实现的user-service

  • 服务消费者

消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。本例中就是我们实 现的consumer-demo

2.高可用的Eureka Server

Eureka Server即服务的注册中心,在刚才的案例中,我们只有一个EurekaServer,事实上EurekaServer也可以是一 个集群,形成高可用的Eureka中心。

2.1 服务同步

多个Eureka Server之间也会互相注册为服务,当服务提供者注册到Eureka Server集群中的某个节点时,该节点会把 服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到Eureka Server集群中的任意一 个节点,都可以获取到完整的服务列表信息。

而作为客户端,需要把信息注册到每个Eureka中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UyYCrkQJ-1577892363677)(F:\learning\javaee\笔记\第五阶段\spring cloud\06 Eureka详解\img\image-20200101200500663.png)]

如果有三个Eureka,则每一个EurekaServer都需要注册到其它几个Eureka服务中,例如:有三个分别为10086、 10087、10088,则

10086要注册到10087和10088上

10087要注册到10086和10088上

10088要注册到10086和10087上

2.2 动手搭建高可用的EurekaServer

我们假设要搭建两台EurekaServer的集群,端口分别为:10086和10087

1)修改原来的EurekaServer配置;修改 eureka-server\src\main\resources\application.yml 如下:

server:
  port: ${port:10086}
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url:
      # eureka 服务地址,如果是集群的则是其它服务器地址,后面要加eureka
      defaultZone: ${defaultZone:http://127.0.01:10086/eureka}}
      # 注册自己
      register-with-eureka: true
      # 拉取服务
      fetch-registry: true

所谓的高可用注册中心,其实就是把EurekaServer自己也作为一个服务,注册到其它EurekaServer上,这样多个 EurekaServer之间就能互相发现对方,从而形成集群。因此我们做了以下修改:

注意把register-with-eureka和fetch-registry修改为true或者注释掉

在上述配置文件中的${}表示在jvm启动时候若能找到对应port或者defaultZone参数则使用,若无则使用后面 的默认值

  • 把service-url的值改成了另外一台EurekaServer的地址,而不是自己

2)另外一台在启动的时候可以指定端口port和defaultZone配置:

修改原来的启动配置组件;在如下界面中的 VM options 中
设置 -DdefaultZone=http:127.0.0.1:10087/eureka

复制一份并修改;在如下界面中的 VM options 中
设置 -Dport=10087 -DdefaultZone=http:127.0.0.1:10086/eureka

3)启动测试;同时启动两台eureka server

4)客户端注册服务到集群
因为EurekaServer不止一个,因此 user-service 项目注册服务或者 consumer-demo 获取服务的时候,service-url参 数需要修改为如下:

eureka:
  client:
    service-url:
      defaultZone: http://localhost:10086/eureka,http://127.0.0.1:10087/eureka

ervice-url:
defaultZone: http://localhost:10086/eureka,http://127.0.0.1:10087/eureka


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值