Apollo - Architecture
Server
Architecture
逻辑视图,Software Load Balancer 即 Nginx
Module
Module | Desc | Note |
---|---|---|
Config Service | 服务对象:Client 配置获取接口:推送 + 拉取 |
|
Admin Service | 服务对象:Portal 配置管理接口:修改 + 发布 |
|
Client | 应用获取配置,实时更新 通过 Meta Server 获取 Config Service 服务列表 客户端软负载 |
|
Portal | 配置管理界面 通过 Meta Server 获取 Admin Service 服务列表 客户端软负载 |
|
Eureka | 服务注册与发现 Config Service 和 Admin Service 向 Eureka 注册并保持心跳 与 Config Service 一起部署 |
|
Meta Server | Eureka Proxy 逻辑角色,与 Config Service 一起部署 Client 通过域名访问 Meta Server 获取 Config Service 服务列表 Portal 通过域名访问 Meta Server 获取 Admin Service 服务列表 |
Eureka 只有 Java 客户端 主要是为了支持多语言 |
部署视图,Nginx 需要配置的 upstream:Meta Server + Portal
Domain Model
AppNamespace:应用的 Namespace 的元数据
Authority Model
基于 RBAC
Real-time push
借助数据库实现异步通知(Admin Service -> Config Service)
Client
Architecture
Highlight
Point | Note |
---|---|
推拉结合 | 保持一个长连接,配置实时推送 定期拉取配置(fallback) |
数据缓存 | 内存 + 磁盘 |
事件通知 | 订阅配置更新通知 |
Reference
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.