您的当前位置:首页正文

Springboot整合Apollo框架

2024-10-23 来源:个人技术集锦

一、Apollo作用

对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……

在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。

Apollo配置中心应运而生!Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,具备规范的权限、流程治理等特性。

二、搭建Apollo配置中心

Quick Start:能够在几分钟内在本地环境部署、启动Apollo配置中心(只针对本地测试使用)

1.创建数据库

Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB

-- 数据库ApolloConfigDB 导入apolloconfigdb.sql

select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;

-- 数据库ApolloPortalDB 导入apolloportaldb.sql

select `Id`, `AppId`, `Name` from ApolloPortalDB.App;

2.Apollo服务端连接这两个数据库

修改demo.sh

# apollo config db info

apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8

apollo_config_db_username=xxx

apollo_config_db_password=xxx



# apollo portal db info

apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8

apollo_portal_db_username=xxx

apollo_portal_db_password=xxx

3.启动Apollo配置中心

执行启动脚本,打开git bash here

./demo.sh start

4.使用Apollo

会在本地启动三个服务,分别使用8070、8080、8090端口

http://localhost:8070/

http://localhost:8080/

http://localhost:8090/

Apollo平台:

http://localhost:8070/

用户名:apollo

密码:xxx

三、springboot整合使用Apollo配置中心

1.添加Apollo依赖:pom.xml

com.ctrip.framework.apollo

apollo-client

1.1.1

2.编写application.yml文件

application-dev.yml:

# Apollo 配置管理

app:

id: basedata

apollo:

meta: http://localhost:8080

bootstrap:

enabled: true

namespaces: application, base

eagerLoad:

enabled: true

3.springboot启动类添加注解@EnableApolloConfig

4.登录Apollo平台添加配置并发布

http://localhost:8070/apollo/admin

创建项目:appId

添加配置项:key/value、选择集群

发布:只有发布过的配置文件才会被客户端获取到,该发布只会作用于当前环境:DEV

Apollo配置:

比如basedata:

公共的配置:去引用base应用的配置,继承base,自己改写会覆盖

私有的配置:application

文本可以查看自己改写的,和base不同的配置

5.项目中就可以读取到这些配置了

四、补充

1.用户在用java连接apollo时,需要创建app.properties:

在apollo配置中心中存在AppId,这是每一个项目的唯一标识,

因此app.properties内需要确定,你需要使用哪个项目的配置信息

-----》直接在application-dev.yml中:

app:

id: basedata

apollo-env.properties:用来配置不同环境访问不同的apollo配置中心的,apollo允许用户配置四个不同的环境,分别是dev-开发环境,fat-功能测试环境,uat-用户测试环境, pro-生产环境

-----》

apollo:

meta: http://localhost:8080/

application-fat.yml是8081

2.spring Eureka注册中心

http://localhost:8080/

表示apollo启动成功

apollo默认有8080、8090和8070三个端口

3.Apollo缓存

Apollo客户端会把从服务端获取到的配置在本地文件系统缓存一份,

用于在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置,不影响应用正常运行。

本地缓存路径位于C:\opt\data\

apollo所有配置会写在这个缓存文件中:basedata+default+base.properties

显示全文