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.















