环境搭建
下载Quick Start安装包
手动打包Quick Start安装包
- 修改
apollo-configservice, apollo-adminservice
和apollo-portal
的pom.xml
,注释掉spring-boot-maven-plugin
和maven-assembly-plugin
- 在根目录下执行
mvn clean package -pl apollo-assembly -am -DskipTests=true
- 复制
apollo-assembly/target
下的jar
包,rename
为apollo-all-in-one.jar
创建数据库
-
Apollo
服务端共需要两个数据库:ApolloPortalDB
和ApolloConfigDB
,数据库、表的相关Sql
在安装包里,只需要导入数据库即可。直接导入就行。
配置数据库连接信息
-Apollo
服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh
,修改ApolloPortalDB
和ApolloConfigDB
相关的数据库连接串信息。
注意:填入的用户需要具备对ApolloPortalDB和ApolloConfigDB数据的读写权限。
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)
注意:不要修改demo.sh的其它部分
修改默认的apollo端口
# meta server url
config_server_url=http://localhost:6001
admin_server_url=http://localhost:6002
eureka_service_url=$config_server_url/eureka/
portal_url=http://localhost:6003
启动apollo配置中心
- 在
git bash
窗口中运行命令行
./demo.sh start
- 启动成功界面信息如下:
- 如果启动报错,请在相应的日志文件中查看出错原因。
Apollo启动成功
- 默认8080界面
- 8090
apoolo
配置界面
登录配置中心、新建服务的相关配置
- 默认账号密码:
apollo
admin
Apollo 集成 SpringBoot 读取配置文件
概述
Apollo
支持API
方式和Spring
整合方式,该怎么选择用哪一种方式?
API
方式灵活,功能完备,配置值实时更新(热发布),支持所有Java环境。Spring
方式接入简单。Spring
方式也可以结合API方式使用,如注入Apollo
的Config
对象,就可以照常通过API
方式获取配置了:
@ApolloConfig
private Config config; //inject config for namespace application
引入依赖
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.3.0</version>
</dependency>
在配置中心新建配置文件
配置私有的 app-demo-one-dev 和共有的 app-common-dev
app-demo-one-dev
私有配置app-common-dev
共有配置
SpringBoot 配置拉去配置文件
application.yml
apollo:
bootstrap:
eagerLoad:
enabled: true
enabled: true
namespaces: application,TEST1.ConfigOne
meta: http://localhost:8080
app:
id: app-demo-one-dev
- 就是把所有的配置文件换了个地方存着,配置文件可以通过模块化、公有化的方式配置,方便所有服务的配置文件管理。
- 还是挺简单的,方便开发。