1.服务发现-网飞尤里卡
2.客户服务负载平衡-网飞功能区
3.断路器-网飞海斯特里克斯
4.服务网关-网飞祖尔
5.分布式配置-spring云配置
一.计划简介
1.apollo是携程框架部开发的分布式配置中心。
2.集中管理不同的应用程序环境和不同集群的配置。
3.配置修改后,可以实时推送到应用端。
4、具有标准化权限、流程化管理等特点。
第二,组件
apollo包括一个服务器和一个客户端。
服务器:基于springboot和springcloud的开发,打包后可以直接运行,不需要安装tomcat等额外的应用容器。
java客户端:独立于任何框架,可以在所有java运行时环境下运行,对spring/springboot环境也有很好的支持。
第三,的特点
1.同意管理不同环境和不同集群的配置。
2.配置修改实时生效(热发布)
3.版本发布管理——所有的配置都有一个版本概念,方便配置回滚。
4.灰度发布——点击发布,仅对部分应用实例生效,观察一段时间没有问题后,再推送给所有应用实例。
5.权限管理、发布审核和操作审核
权限管理——有完善的权限管理。
发布评审——配置管理分为两个步骤:编辑和发布,以减少人为错误。
操作审计–所有操作都有审计日志,这有助于跟踪问题。
6.监控客户端配置信息——在界面上可以方便地看到哪些实例正在使用配置。
7.提供java和。netnativeclients来促进应用程序集成。
8.提供了http接口,以及非java和。net应用程序也可以方便地使用。
9.提供开放式平套api
10.部署非常简单。只要安装了java和mysql,apollo就可以运行。
第四,实施过程
1.用户在配置中心修改和发布配置。
2.配置中心通知apollo客户机配置更新。
3.apollo客户端从配置中心获取最新的配置,更新本地配置并通知应用程序。
五、工作原理
上图简单描述了的整体设计,我们可以从下往上看:
1.配置服务提供读取、推送配置等功能,服务对象为apollo客户端。
service提供配置修改、发布等功能,服务对象为apolloportal(管理界面)
3.配置服务和管理服务是多实例和无状态的部署,因此您需要在eureka中注册自己并保持心跳。
4.在eureka之上,我们设置了一层元服务器来封装eureka的服务发现接口。
5.客户端通过域名访问元服务器获取configservice服务列表(ip端口),然后通过ip端口直接访问服务。同时,它会在客户端进行负载平衡和错误重试。
6.门户通过域名访问元服务器获取adminservice服务列表(ip端口),然后通过ip端口直接访问服务,同时会在门户端做负载均衡和错误重试。
7.为了简化部署,我们将在同一个jvm进程中实际部署三个逻辑角色:配置服务、eureka和元服务器。