2 Eureka集群
2.1 Eureka简介
2.1.1什么是Eureka
Eureka是一种基于REST(Representational State Transfer)的服务,主要用于AWS,用于定位服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka Server。Eureka还附带了一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易。客户端还有一个内置的负载均衡器,可以进行基本的循环负载均衡。在Netflix,一个更复杂的负载均衡器包装Eureka,根据流量,资源使用,错误条件等多种因素提供加权负载平衡,以提供卓越的弹性。
理解:
Eureka是一个服务注册与发现的注册中心。类似于dubbo中的zookeeper.
官网地址:
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance
2.1.2Eureka的架构
application Service :相当于服务提供者
application Client :相当于服务消费者
make remote call :服务调用过程
us-east-1c d e 都是region:us-east-1 的可用区域。
简单可以理解为:
每一个erurak都是一个节点,默认启动时就是以集群的方式。
区别:
erurak:集群,各个节点的数据一致,各个节点都属于同等级别的注册中心,不存在leader的概念。
zookeeper:Zookeeper集群存在Leader节点,并且会进行Leader选举,Leader具有最高权限。
2.2 搭建Eureka集群
配置host文件C:\Windows\System32\drivers\etc\hosts
文件,添加映射
127.0.0.1 eureka-server1
127.0.0.1 eureka-server2
127.0.0.1 eureka-server3
2.2.1 application.yml配置
第1台application.yml:
server:
port: 8761
eureka:
instance:
hostname: eureka-server1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka-server2:8762/eureka/,http://eureka-server3:8763/eureka/
第2台application.yml
server:
port: 8762
eureka:
instance:
hostname: eureka-server2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server3:8763/eureka/
第3台application.yml配置:
server:
port: 8763
eureka:
instance:
hostname: eureka-server3
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server2:8762/eureka/
2.2.2 效果
项目中使用的时候,将多个写到一起,隔开即可,代码如下:
上图代码如下:
eureka:
client:
service-url:
defaultZone: http://eureka-server1:8761/eureka/,http://eureka-server2:8761/eureka/,http://eureka-server3:8763/eureka/