1. 微服务关系架构图
简要说明:
(1)所有应用或者服务要想对外提供服务(包括网关), 必须首先到注册中心进行注册.
(2)所有访问通过服务网关进行访问, 然后由服务网关路由到对应服务中心进行交互访问.
2. 网关及注册中心高可用架构图
2.1 springcloud eureka 高可用方案
由上图可以看出, 注册中心与路由很容易成为单点故障, 软件老王以前使用 springcloud eureka 高可用架构方案:
(1)euraka 部署成集群模式, 相互注册, 通过心跳策略同步注册信息;
(2)客户端注册的时候, 可以写多个注册中心地址, 假如第一个注册中心出问题, 会自动到第二个中心去注册.
defaultZone: http://10.192.168.12:8761/eureka/,http://10.192.168.13:8761/eureka/
当时网关没有做高可用方案.
2.2 网关高可用架构方案
2.2.1 软件老王采用的技术方案是: 采用 keepalived+nginx 实现网关的高可用, 架构图如下:
简要说明:
(1)通过 nginx 来实现 gateway 集群部署;
(2)通过 keepalived 虚拟 ip, 当服务器 1 宕机后, 虚拟 ip 会自动切换到服务器 2 上, 来保证 nginx 的高可用.
2.2.2 业务中台实际部署
因服务器资源有限, 软件老王目前有 3 台服务器资源, 分别为: 10.192.168.11,10.192.168.12,10.192.168.13
简要说明:
网关统一使用 vip(10.192.168.21)进行访问, 21 默认会路由到 10.192.168.11 服务器上(11 出故障的话, 会自动谢欢到 12 服务器上),11 上的 nginx 默认轮询调用 gateway 服务(11 与 12 上启动了 6 个服务), 进而实现高可用.
2.3 注册中心高可用方案
2.3.1 技术方案
软件老王经过技术选型后, 这次的注册中心选择的是阿里巴巴的 nacos,nacos 官方已经给了高可用部署方案, nacos 与 cloud 的 euraka 还有一个区别, 客户端不能配置两个注册中心, 官方给的架构图是:
2.3.2 软件老王实际部署的注册中心 (nacos) 架构图
其中 10.192.168.22 为 vip, 案例演示: gateway 默认启动了 demo 服务(/demo), 可进行演示使用.
I'm 「软件老王」, 如果觉得还可以的话, 关注下呗, 后续更新秒知! 欢迎讨论区, 同名公众号留言交流!
来源: https://www.cnblogs.com/ruanjianlaowang/p/11542747.html