携程 apollo分布式配置中心学习总结

一、apollo 组成

  adminService:提供配置更新和发布接口,服务于管理界面potal 来更新和获取数据。

  configService:提供配置获取接口和配置推送接口,服务于apollo客户端。

  potal:提供配置管理界面,通过meterService 获取adminService 列表,使用客户端SLB 软负载的方式调用adminService.

  client:为应用获取配置,支持实时刷新,和configService 保持长连接,一旦有配置变更,clent收到configService 推送,刷新jvm缓存。

  Erueka:用于服务发现和注册,和configService一起部署

  meteServer:支持potal获取adminService 地址列表,支持client 获取configService 地址列表,相当于Eureka 的proxy,通常一个环境(dev/pro)部署一个meteServer,帮助potal或client 选取一个Eureka 或一个环境。

  

二、apollo分布式配置原理图说明

  1、client 访问nginx 通过不同域名或端口访问metaServer,然后获取到注册在Eureka 上面的configService  的地址列表,然后通过本地负载均衡方式访问目标configService  获取配置的值,configService 与client 之间保持长连接,configService 也将更新的值推送到client,client再通知应用更新。

  2、用户访问nginx ,通过不通域名或端口代理到不通的potal地址,然后potal再访问nginx 通过不通域名或端口访问metaServer,然后获取到注册再Eureka 上的adminService 地址列表,然后通过本地负载均衡方式访问目标adminService 更新配置的值,更新配置后adminService 通知到configService 做应用配置实时刷新。

三、apollo 通过四个维度管理不通维度的key-value

  1、namespase 命名空间:一个namespase 相当于一个配置文件,不通的配置有不通的配置文件,也就有多个namespase,默认输入default集群

  2、cluster 集群,一个环境env下有多个集群,代表多个部署,或在不通机房部署,属于不同的公司业务,一个集群下有多个nameSpase,

  3、environment 环境,如开发环境、生产环境、测试环境,不通的环境下有多个集群

  4、project 项目,一个项目代表一个服务,一个服务有多个环境

四、部署及配置

  1、源码下载地址

https://github.com/ctripcorp/apollo

  2、历史版本下载

https://github.com/ctripcorp/apollo/releases

  3、服务端部署

(1)安装mysql,版本必须要5.7以上,因为在执行初始化脚本时有些语法在低版本上不支持

(2)下载sql初始化脚本并执行:https://github.com/nobodyiam/apollo-build-scripts

(3)分别启动adminService ,configService服务,启动批处理脚本startApolloService.bat如下:


echo

start "adminService" java -Dserver.port=8090 -DappId=100 -Xms256m -Xmx256m -Dapollo_profile=github -Dspring.datasource.url=jdbc:mysql://localhost:3307/apolloconfigdb?characterEncoding=UTF-8 -Dspring.datasource.username=root -Dspring.datasource.password=root -Dlogging.file=apollo.log -jar apollo-adminservice-1.5.1.jar
start "configService" java -Dserver.port=8080 -DappId=200 -Xms256m -Xmx256m -Dapollo_profile=github -Dspring.datasource.url=jdbc:mysql://localhost:3307/apolloconfigdb?characterEncoding=UTF-8 -Dspring.datasource.username=root -Dspring.datasource.password=root -Dlogging.file=apollo.log -jar apollo-configservice-1.5.1.jar

(4)adminService和configService 启动完成后再启动potal,启动脚本startPotal 如下,支持多环境启动

echo

start "potalService" java -Dserver.port=8070 -DappId=300 -Xms256m -Xmx256m -Dapollo_profile=github,auth -Ddev_meta=http://localhost:8080/ -Dpro_meta=http://192.168.2.100:8081/ -Dspring.datasource.url=jdbc:mysql://localhost:3307/ApolloPortalDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=root -Dlogging.file=/Users/lewis/SourceProjects/apollo/log/apollo-portal.log -jar apollo-portal-1.5.1.jar

(5)多环境启动时注意端口的不通以及eureka的不同,否则会出现potal访问service出错的问题

(6)配置apollo客户端

maven依赖

 <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-client</artifactId>
            <version>1.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.ctrip.framework.apollo</groupId>
            <artifactId>apollo-core</artifactId>
            <version>1.1.0</version>

        </dependency>

application.properties 配置

app.id=apolloClientService
apollo.bootstrap.enabled = true
apollo.meta=http://192.168.2.100:8081

注意实时刷新的controller 上加注解@RefreshScope

详细内容可参考

https://blog.csdn.net/zjh_746140129/article/details/86179522

原文地址:https://www.cnblogs.com/lufei33180/p/12540193.html

时间: 2024-10-31 20:54:29

携程 apollo分布式配置中心学习总结的相关文章

Apollo分布式配置中心部署以及使用

一.简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方github:https://github.com/ctripcorp/apollo 作者对Apollo对介绍:https://github.com/ctripcorp/apollo/wiki/Apollo配置中心介绍 二.安装部署基础设施本次部署环境为DEV(开发环境).FAT(测试环境

Apollo分布式配置中心入门学习

一.Apollo地址 Apollo源码及简介.Apollo配置中心.Apollo设计原理 二.Apollo环境搭建 1.下载配置中心 2.执行两个sql文件:apolloconfigdb(存放配置文件信息).apolloportaldb(网站信息) 3.下载好的apollo-build-scripts-master上传到服务器.服务器需要JDK环境 4.解压:unzip apollo-build-scripts-master.zip 5.进入/apollo-build-scripts-maste

分布式配置中心 携程 apollo

1.传统配置文件与分布式配置文件区别 传统配置文件:如果修改了配置文件,需要重新打包发布,重新发布服务,而且每个环境的变更配置文件,比较繁琐. 分布式配置文件:将配置文件注册到配置中心上去,可以使用分布式配置中心实时更新配置文件,统一管理配置文件,不需要重新打包发布. 2.常用的分布式配置中心框架有哪些 disconf(依赖于Zookeeper).Zookeeper(通过Watch事件监听实现).diamond(阿里产品).携程(apollo).Redis.xxl-config. 3.携程apo

携程 Apollo 配置中心传统 .NET 项目集成实践

官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 .NET 客户端做接入的时候就发现了些问题. ctripcorp/apollo - .Net客户端使用指南 ctripcorp/apollo.net - .Net客户端之与 System.Configuration.ConfigurationManager 集成 两个文档关于标识应用身份的AppI

多种配置的分布式配置中心

淘宝的 diamond 参考文档 Diamond – 分布式配置中心简介 服务端搭建 安装jdk 安装maven 安装tomcat 安装mysql 启动mysql并创建数据库和表 1234567891011121314151617181920212223242526272829303132333435 -- 创建Diamond数据库CREATE DATABASE IF NOT EXISTS `diamond` /*!40100 DEFAULT CHARACTER SET utf8 */;USE

携程阿波罗(Apollo)配置中心

携程阿波罗(Apollo) https://www.cnblogs.com/xiaxiaolu/p/10025597.html 一.瞎扯点什么 1.1 阿波罗 ? 阿波罗是希腊神话中的光明之神.文艺之神,同时也是罗马神话中的太阳神:他是光明之神,从不说谎,光明磊落,在其身上找不到黑暗,也被称作真理之神.他非常聪明,通晓世事,是预言之神. 后世各种各样的项目都喜欢以阿波罗命名,比如著名的美国登月计划:阿波罗计划: 既然携程以阿波罗(Apollo)命名项目,那我们我们接下来看看,携程阿波罗能给我们程

分布式配置中心Apollo

1,什么是分布式配置中心 项目中配置文件比较繁杂,而且不同环境的不同配置修改相对频繁,每次发布都需要对应修改配置,如果配置出现错误,需要重新打包发布,时间成本较高,因此需要做统一的分布式注册中心,能做到自动更新配置文件信息,解决以上问题 常用分布式配置中心框架 Disconf(依赖于zookpeer).Zookpeer().diamond.携程(阿波罗).Redis.xxl-conf Zookpeer保证配置文件信息实时更新 (事件通知) 大型互联网公司自己内部都有自己独立分布式配置中心独立RP

SpringCloud学习(六)分布式配置中心(Spring Cloud Config)(Finchley版本)

在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二

springCloud学习-分布式配置中心(Spring Cloud Config)

1.简介 Spring Cloud Config :分布式配置中心,方便服务配置文件统一管理,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client. 2.config server从本地读取配置文件 2.1.在父工程的pom.xml中的 <modules>节点下 添加如下代码 <module>config-server</modul