基本原理
上图是来自eureka的官方架构图,这是基于集群配置的eureka;
服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。
当服务注册中心Eureka Server检测到服务提供者因为宕机、网络原因不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。
新建模块(springcloudDemo-Eureka-7002和 springcloudDemo-Eureka-7003),至于如何在父项目下新建模块请参考Eclipse构建Maven分包项目并构建服务端
注: 截图中对应的Eureka 即三个Eureka服务构成Eureka集群
由于是学习SpringCloud Eureka 所以Eureka服务没有太多操作,所以将之前的设置的单机版Eureka 内容复制过来
下的内容,分别拷贝到对应的其他Eureka集群成员中特别注意:请不要为了方便直接拷贝Eclipse中springcloudDemo-Eureka-7001中的内容,直接到其他的项目中,这样做是会报错的。。。 所以别偷懒!!!
这个也可以不修改,没有啥太大的影响
Windows 位置: C:\Windows\System32\drivers\etc
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
下面针对三个服务的配置文件进行相应的说明:
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称, C:\Windows\System32\drivers\etc 的hosts已经加入映射
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#单机
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
#集群
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com #eureka服务端的实例名称, C:\Windows\System32\drivers\etc 的hosts已经加入映射
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#单机
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
#集群
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
server:
port: 7003
eureka:
instance:
hostname: eureka7003.com #eureka服务端的实例名称, C:\Windows\System32\drivers\etc 的hosts已经加入映射
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#单机
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。
#集群
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
原理: 服务注册的时候,从注册到一台修改为注册到多台
#单机版
#defaultZone: http://localhost:7001/eureka
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
分别启动三个Eureka服务,形成Eureka集群,之后在启动服务提供者
打开浏览器分别输入:
可以查看 服务8001,已经注册到三台Eureka集群中,Eureka集群正常启动。
注: 为什么 http://eureka7003.com:7003/ 界面会报错,这是因为Eureka 保护机制导致,并不影响。
至此,从上一篇单机版到集群Eureka的改造完成。 至于服务消费者访问,由于现在只有一个生产者,所以目前不是很明显,之后会构建服务生产者集群,然后在测试服务消费者,这样会比较好比较。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_43842093/article/details/121941297
内容来源于网络,如有侵权,请联系作者删除!