SpringCloud实战---第七篇:Eureka注册中心之服务集群
前言
说起来容易做起来难,一步一步都干完!!!
学习一定要自己动手搞一搞,不能只眼会。
学习笔记是跟着尚硅谷的视频学的:https://www.bilibili.com/video/BV18E411x7eT?p=1
场景大纲
我们以这样一个场景来学习、构建我们的微服务
服务注册中心Eureka集群概念
1. 工作流程
-
Eureka是cloud提供的服务治理框架,实现服务的统一调用和管理,当微服务接口数量上来之后使用传统的RestTemplate的方式调用会十分不便,也不便于我们统一的管理和监控,引入Eureka框架可以实现服务统一的发布和管理,Eureka包含Server和Client两个组件。
-
EurekaServer就是注册中心,服务向注册中心注册后,可以被其他使用方发现调用。EurekaClient就是服务提供方和服务调用方,服务可以将自己注册为服务提供者和服务调用者。
-
服务注册:将服务信息注册进注册中心。
-
服务发现:从注册中心上获取服务信息,本质上是通过key服务命名取value服务调用地址。
-
整体的流程
- 启动注册中心7001
- 启动8001服务提供者
- 8001启动后会把自身信息注册进入7001注册中心
- 消费者80需要调用接口时,使用8001的服务名称获取RPC远程调用地址
- 获取到远程调用地址后,使用HttpClient的方式实现远程调用
- 80消费方获取8001服务地址后,会缓存到本地jvm内存中,默认每隔30s更新一次-
-
问题:微服务RPC远程服务调用最核心的是什么?是注册中心.
高可用:试想你的注册中心只有一个only one, 它出故障了那就呵呵( ̄▽ ̄)"了,会导致整个为服务环境不可用
解决办法:搭建Eureka注册中心集群 ,实现负载均衡+故障容错
2. Eureka集群
- 本质是多个EurekaServer(服务注册中心)相互注册,互相监控。
Eureka集群环境搭建
1. 创建7002工程模块
创建cloud-eureka-server7002工程模块,除了命名和端口,其他的和7001一样,创建方法不再赘述,不会的请参照《第六篇:Eureka注册中心之服务注册》。
2. 修改电脑的hosts映射配置文件
由于我们配置中的hostname不能重复,否则会造成EurekaServer集群分不清哪个节点是哪个,所以我们需要修改下电脑的hosts配置,配置下hostname和127.0.0.1的映射关系。
找到C:\Windows\System32\drivers\etc路径下的hosts文件。
右键,以文本格式打开编辑,在末尾添加上以下配置。
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
ctrl+s保存,再重新打开,看是否保存成功。
2. 修改7001和7002的配置信息
将配置信息中的hostname修改为各自的,然后注册时defaultZone配置分别向对方注册
3. 启动测试
- 启动两个EurekaServer
- 验证
访问7001的eureka web页面,看注册是否指向7002
http://eureka7001.com:7001/
访问7002的eureka web页面,看注册是否指向7001
http://eureka7001.com:7002/
互相指向说明集群配置成功。
EureClient服务提供者的改造
将服务提供者8001和80修改为向集群注册服务信息。
- 修改两模块的application配置文件,添加集群信息,修改defaultZone配置上两个注册中心地址,中间用逗号隔开,多个可以写多个
http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
注意:修改80服务调用者时,由于之前我们关闭了注册。现在测试服务注册可以打开。
2. 启动测试
分别查看两个EurekaServer,上面都有两个服务注册上来了。
http://eureka7001.com:7001/
http://eureka7001.com:7002/
完美!!!
小结
- 点赞
- 收藏
- 关注作者
评论(0)