• 微服务时代之网关及注册中心高可用架构设计


    1. 微服务关系架构图

    简要说明:

    (一)所有应用或者服务要想对外提供服务(包括网关),必须首先到注册中心进行注册。

            注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。

           总结:微服务在水平方向上将项目按不同功能划分为不同部分,而服务注册中心就相当于一个中转站,服务客户端(服务消费者以及服务提供者)将提供的服务注册到注册中心,当其他客户端需要该功能时通过注册中心调用服务

    (二)所有访问通过服务网关进行访问,然后由服务网关路由到对应服务中心进行交互访问。

    (1)网关层对外部和内部进行了隔离,保障了后台服务的安全性。

    (2)对外访问控制由网络层面转换成了运维层面,减少变更的流程和错误成本。

    (3)减少客户端与服务的耦合,服务可以独立运行,并通过网关层来做映射。

    (4)通过网关层聚合,减少外部访问的频次,提升访问效率。

    (5)节约后端服务开发成本,减少上线风险。

    (6)为服务熔断,灰度发布,线上测试提供简单方案。

    (7)便于进行应用层面的扩展。

    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)架构图

    博客参考于:https://www.cnblogs.com/ruanjianlaowang/p/11542747.html

  • 相关阅读:
    Linux常用命令大全(非常全!!!)
    洛谷 P3379 【模板】最近公共祖先(LCA)
    POJ 3259 Wormholes
    POJ 1275 Cashier Employment
    POJ 3169 Layout
    POJ 1201 Intervals
    洛谷 P5960 【模板】差分约束算法
    洛谷 P3275 [SCOI2011]糖果
    POJ 2949 Word Rings
    POJ 3621 Sightseeing Cows
  • 原文地址:https://www.cnblogs.com/LiLiliang/p/11810843.html
Copyright © 2020-2023  润新知