03. 微服务架构开发实战之服务治理
讲述如何开发微服务架构应用程序以及如何使用Eureka集群实现高可用服务治理。
视频教程:
3.1 服务治理解决了什么问题?
我们肯定不能这么干,不然光沟通就累死了。
业界针对这个问题提供了一套解决方案,那就是服务治理。
3.2 服务治理的解决思路是什么?
服务治理的解决思路是启动一个服务注册中心,然后各个微服务都去这个服务注册中心将自己的信息登记,注册。
这样如果想知道某一个微服务处于哪台机器上部署着,只需要查询这个服务注册中心即可。
这个服务注册中心就相当于一个微服务注册表,每个微服务都要去上面进行登记注册。
3.3 服务治理的框架有哪些?
业界针对服务治理提供了很多框架来帮助我们快速实现服务治理的功能。
比如最早的Netflix 公司开源的Eureka,经过Spring 官方团队的封装之后就变成了Spring Cloud Eureka
除此之外,还有Consul, Zookeeper 等其他框架解决方案。
3.4 项目结构
3.4.1 单体架构项目结构
一个项目多个包
3.4.2 微服务架构项目结构
一个项目多个模块
3.5 使用Eureka 实现服务治理
对应的IP 如下所示
服务器名称 |
服务器ip地址 |
server1 | 192.168.159.146 |
server2 |
192.168.159.147 |
server3 | 192.168.159.148 |
然后在三个服务注册中心的配置文件中这样指定:
Eureka 集群注册模式如下图所示:
3.5.1 Eureka 服务注册中心集群搭建
3.5.2 Eureka 客户端注册
3.5.3 参数讲解
Renews (last min):表示最近一分钟从Eureka 实例收到的续订次数
Renews threshold:续订阀值,Eureka服务器期望每分钟从Eureka实例收到的续订阀值,初始化值最低为1 (次)
服务注册中心不注册自己:
2*(n+1)*0.85
只取整数部分服务注册中心注册自己:
2*n*0.85
只取整数部分
建议:
开启自我保护
集群或修改参数
# 默认值是true
eureka.server.enable-self-preservation=true
# default is 30
eureka.instance.leaseRenewalIntervalInSeconds=30
# default is 0.85 we can set the value to 0.49
eureka.server.renewalPercentThreshold=0.49
2*(3+1)*0.85= 6.8
-> 6 == 实际每分钟续订次数 6 =2*3
2*(3+1)*0.49= 3.92
-> 3 < 实际每分钟续订次数 6 =2*3
如果n 等于3 ,不注册自身,按照默认值计算阀值。
点击阅读原文查看更详细更新的博文讲解。