搭建Eureka注册中心
1.介绍下Spring Cloud各组件的关系
Spring Cloud包括注册中心、网管中心、配置中心等多个模块,各个服务都是将自身注册到注册中心后,再完成各自工作,如图所示。
构建Spring Cloud微服务需要具备的技术储备包括:Maven、Spring Boot,我也只是一个初学者,想通过自己对SpringCloud的学习和理解,
按部就班的一步步搭建各个中心,将学习的知识点作为笔记记录下来,也希望能够通过这份笔记能给和我一起学习的你有所收获。
2.搭建注册中心
2.1 创建Eureka服务
如图中操作步骤,我们就可以通过IDEA创建SpringCloud的Eureka注册中心了。
2.2 配置Eureka注册中心
- 增加@EnableEurekaServer注解
我们在EurekaServerApplication类中需要增加EnableEurekaServer注解,来证明该项目为Eureka的注册中心。
- 修改配置文件
如图,定义端口为10001,点击debug,运行程序。浏览器地址栏输入:http://localhost:10001 即可访问注册中心监控页。
3.向注册中心注册服务
3.1 创建客户端
这里需要注意,需要勾选两个组件。
3.2 配置Eureka客户端
- 增加@EnableDiscoveryClient注解
我们在EurekaClientApplication类中需要增加EnableDiscoveryClient注解,来证明该项目为Eureka的客户端。
- 写一个controller
- 修改配置文件,并启动项目
客户端启动成功后,刷新启动中的注册中心,会发现如下图所示的情况,则证明服务已注册成功。
4.配置文件扩展知识
我将我项目中配置文件常用的参数贴了出来,参数上都做了详细的注释,大家可以通过阅读了解一下。
4.1 注册中心端
4.2客户端
5.注册中心的高可用实现
通过我们上面几个章节的学习,我们已经能够搭建一套注册中心和客户端的简单模型了,不难看出,注册中心变成了整个体系中最为重要的环节,如果它发生崩溃,则会造成整个体系崩塌,所以我们要对注册中心、客户端都进行负载,提供项目的高可用性。
5.1 注册中心高可用
首先我们搭建两个注册中心,端口10001和10002,我们可以通过IDEA直接模拟,如图所示:
我们定义两个项目:registry10001项目 运行参数传入-Dserver.port=10001 ,registry10002项目 运行参数传入-Dserver.port=10002
运行 registry10001项目时,我们将client:serviceUrl:defaultZone: 参数端口改为 10002.
运行 registry10002项目时,我们将client:serviceUrl:defaultZone: 参数端口改为 10001.
这样就实现了两个注册中心的相互注册,如果我们启动客户端对其中一个注册中心进行注册,则注册中心会将服务同步到另外一个注册中心中。如图,客户端只注册服务到10001端口的注册中心,
如图所示,客户端的服务已经被注册中心10001复制给了10002,完成了注册中心的高可用。
5.2 客户端的负载均衡
其实客户端的负载均衡非常好理解,如上个例子所示,注册中心有10001和10002两个项目,那么我们只需要将客户端的注册地址写成两个,用逗号间隔即可。客户端会按照顺序优先注册第一个注册中心,如果第一个注册中心故障,则顺延注册第二个注册中心。
为了能让大家便于理解,关键步骤我都做了截图和标记,希望通过我的分享对你能有所帮助,在此也感谢我的小伙伴们在学习过程中给予我的指导和帮助,生命不息、学习不止,祝大家和我自己,学习愉快,各位晚安。
2019-09-04 夜