Spring Cloud 系列之 Apollo 配置中心(一) (2)

Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数

Apollo 总体设计

官方文档:https://github.com/ctripcorp/apollo/wiki/Apollo配置中心设计

架构模块

Spring Cloud 系列之 Apollo 配置中心(一)

上图简要描述了 Apollo 的总体设计,我们可以从下往上看:

Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端(我们自己的微服务应用)

Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)

Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳

在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口

Client通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试

Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试

为了简化部署,我们实际上会把Config Service、Eureka和Meta Server三个逻辑角色部署在同一个JVM进程中

1.3 各模块概要介绍 1.3.1 Config Service

提供配置获取接口

提供配置更新推送接口(基于Http long polling)

服务端使用Spring DeferredResult实现异步化,从而大大增加长连接数量

目前使用的tomcat embed默认配置是最多10000个连接(可以调整),使用了4C8G的虚拟机实测可以支撑10000个连接,所以满足需求(一个应用实例只会发起一个长连接)。

接口服务对象为Apollo客户端

1.3.2 Admin Service

提供配置管理接口

提供配置修改、发布等接口

接口服务对象为Portal

1.3.3 Meta Server

Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port)

Client通过域名访问Meta Server获取Config Service服务列表(IP+Port)

Meta Server从Eureka获取Config Service和Admin Service的服务信息,相当于是一个Eureka Client

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyxpx.html