Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
下载地址:https://github.com/ctripcorp/apollo/releases
操作系统:Ubuntu 16.04
java环境:JDK 1.8
SpringBoot版本:1.5.13
SpringCloud版本:Edgware.SR3
我下载的是apollo-0.10.2.tar.gz
# 解压
tar -zxvf apollo-0.10.2.tar.gz
切换到apollo目录下的scripts/sql/目录
# 切换目录
cd apollo-0.10.2/scripts/sql/
将apolloconfigdb.sql和apolloportaldb.sql导入数据库(我用的是Navicat)
切换到apollo目录下的scripts/目录
# 切换目录
cd apollo-0.10.2/scripts/
修改build.sh文件
# 修改build.sh
sudo gedit build.sh
将数据库的账号密码修改为刚才生成表的库,其余不用修改
运行build.sh(首次运行需要下载一些文件,耐心等待)
下载完成
在/opt目录下新建logs、data、settings三个文件夹,并赋予读写权限
# 新建文件夹
sudo mkdir /opt/logs
sudo mkdir /opt/data
sudo mkdir /opt/settings
# 赋予读写权限
sudo chmod 777 /opt/logs
sudo chmod 777 /opt/data
sudo chmod 777 /opt/settings
在settings文件夹下新建server.properties,在里面加入"env=dev"
启动顺序:apollo-configservice -> apollo-adminservice(可省略) -> apollo-portal
apollo-configservice
切换到apollo目录下的apollo-configservice/target/目录
# 切换目录
cd apollo-0.10.2/apollo-configservice/target/
解压apollo-configservice-0.10.2-github.zip到当前目录的test文件夹下
# 解压
unzip apollo-configservice-0.10.2-github.zip -d test
启动test/scripts/目录下的startup.sh
访问http://localhost:8080/
apollo-configservice启动成功
apollo-adminservice(可省略)
切换到apollo目录下的apollo-adminservice/target/目录
# 切换目录
cd apollo-0.10.2/apollo-adminservice/target/
解压apollo-adminservice-0.10.2-github.zip到当前目录的test文件夹下
# 解压
unzip apollo-adminservice-0.10.2-github.zip -d test
启动test/scripts/目录下的startup.sh
访问http://localhost:8090/
apollo-adminservice启动成功
apollo-portal
切换到apollo目录下的apollo-portal/target/目录
# 切换目录
cd apollo-0.10.2/apollo-portal/target/
解压apollo-portal-0.10.2-github.zip到当前目录的test文件夹下
# 解压
unzip apollo-portal-0.10.2-github.zip -d test
启动test/scripts/目录下的startup.sh
访问http://localhost:8070/
用户名:apollo
密码:admin
apollo-portal启动成功
加入第二步中build的jar包
com.ctrip.framework.apollo
apollo-client
0.10.2
引入eureka服务中心
最新的Finchley.RC2版本SpringCloud会产生版本异常的错误,所以我用的是1.5.13版本的SpringBoot和Edgware.SR3版本的SpringCloud
org.springframework.boot
spring-boot-starter-parent
1.5.13.RELEASE
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-dependencies
Edgware.SR3
pom
import
服务注册中心地址对应apollo-configservice的地址,此处是http://localhost:8080/eureka
默认SpringBoot的web项目启动端口也是8080,为了避免端口冲突必须修改其中之一
# 为了避免端口冲突此处将项目端口改为8100
server.port=8100
eureka.port=8080
eureka.instance.hostname=localhost
# 在此指定服务注册中心地址
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${eureka.port}/eureka/
在resource目录下创建META-INF/app.properties,并定义一个app.id
添加@Configuration、@EnableApolloConfig、@EnableEurekaClient三个注解
应用id和app.properties里定义的app.id保持一致
定义一个test.msg属性用于测试
提交修改并发布
读取配置成功!
https://blog.csdn.net/weixin_37623470/article/details/79044988
小白所学尚浅,文章内容是根据参考+实践理解所得,如果有错误的地方欢迎指正!