参考文章:
https://www.cnblogs.com/harrychinese/p/apollo_java.html
https://blog.csdn.net/qq_41456051/article/details/105922538
https://www.jianshu.com/p/3c21c18afdc1
https://github.com/apolloconfig/apollo/wiki/Quick-Start
https://www.cnblogs.com/haonan-fabric/p/10131742.html
https://blog.csdn.net/qq_38011415/article/details/90551224
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等。
配置主要有以下几个特点:
? 传统单体应用存在一些潜在缺陷,如随着规模的扩大,部署效率降低,团队协作效率差,系统可靠性变差,维护困难,新功能上线周期长等,所以迫切需要一种新的架构去解决这些问题,而微服务( microservices )架构正是当下一种流行的解法。
? 不过,解决一个问题的同时,往往会诞生出很多新的问题,所以微服务化的过程中伴随着很多的挑战,其中一个挑战就是有关服务(应用)配置的。当系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余
总得来说,配置中心就是一种统一管理各种应用配置的基础服务组件。
?总结一下,在传统巨型单体应用纷纷转向细粒度微服务架构的历史进程中,配置中心是微服务化不可缺少的一个系统组件,在这种背景下中心化的配置服务即配置中心应运而生,一个合格的配置中心需要满足:
1.引入maven依赖
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.3.0</version> </dependency>
2.application配置文件
# apollo集成 # apollo 配置应用的 appid app.id=springboot-apollo-demo1 # apollo meta-server地址,一般同config-server地址 apollo.meta=http://192.168.0.153:8080 #启用apollo配置开关 apollo.bootstrap.enabled=true apollo.bootstrap.eagerLoad.enabled=true # apollo 使用配置的命名空间,多个以逗号分隔 apollo.bootstrap.namespaces = application
app.id:在配置中心配置的应用身份信息。
apollo.bootstrap.enabled:在应用启动阶段是否向Spring容器注入被托管的properties文件配置信息。
apollo.bootstrap.eagerLoad.enabled:将Apollo配置加载提到初始化日志系统之前。
apollo.bootstrap.namespaces:配置的命名空间,多个逗号分隔,一个namespace相当于一个配置文件。
**apollo.meta:**当前环境服务配置地址,生产环境建议至少双节点,可以填写多个逗号分隔,使用一个单独的域,如 http://config.xxx.com(由nginx等软件负载平衡器支持),而不是多个IP地址,因为服务器可能会扩展或缩小。
3.Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套。
Apollo默认会启动3个服务,分别使用8070, 8080, 8090端口,请确保这3个端口当前没有被使用
java -Xms256m -Xmx256m -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=pbteach0430 -jar apollo-configservice-1.3.0.jar
2.启动apollo-adminservice,可通过-Dserver.port=8090修改默认端口,与上面类似.Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
3.启动apollo-portal,可通过-Dserver.port=8090修改默认端口,与上面类似
4.与springboot整合,在application上添加@EnableApolloConfig
原文:https://www.cnblogs.com/jingRegina/p/15206827.html