环境搭建

下载Quick Start安装包

apollo spring 拉取配置 源码 apollo 配置中心 springboot_API

手动打包Quick Start安装包
  • 修改apollo-configservice, apollo-adminserviceapollo-portalpom.xml,注释掉spring-boot-maven-pluginmaven-assembly-plugin
  • 在根目录下执行mvn clean package -pl apollo-assembly -am -DskipTests=true
  • 复制apollo-assembly/target下的jar包,renameapollo-all-in-one.jar
创建数据库
  • Apollo服务端共需要两个数据库:ApolloPortalDBApolloConfigDB,数据库、表的相关Sql在安装包里,只需要导入数据库即可。直接导入就行。
配置数据库连接信息

-Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDBApolloConfigDB相关的数据库连接串信息。

注意:填入的用户需要具备对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 spring 拉取配置 源码 apollo 配置中心 springboot_阿波罗_02

  • 如果启动报错,请在相应的日志文件中查看出错原因。
Apollo启动成功
  • 默认8080界面
  • 8090 apoolo配置界面

apollo spring 拉取配置 源码 apollo 配置中心 springboot_配置文件_03

登录配置中心、新建服务的相关配置
  • 默认账号密码:
apollo
admin

Apollo 集成 SpringBoot 读取配置文件

概述

Apollo支持API方式和Spring整合方式,该怎么选择用哪一种方式?

  • API方式灵活,功能完备,配置值实时更新(热发布),支持所有Java环境。
  • Spring方式接入简单。 Spring方式也可以结合API方式使用,如注入ApolloConfig对象,就可以照常通过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>
在配置中心新建配置文件

apollo spring 拉取配置 源码 apollo 配置中心 springboot_阿波罗_04

配置私有的 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
  • 就是把所有的配置文件换了个地方存着,配置文件可以通过模块化、公有化的方式配置,方便所有服务的配置文件管理。
  • 还是挺简单的,方便开发。