Apollo搭建以及整合SpringBoot
整个过程可以参考更加细致的文档:https://www.apolloconfig.com/#/zh/deployment/distributed-deployment-guide
1:前期准备工作(非定制化开发包部署)
1.1:jdk的环境建议:1.8及以上
1.2:mysql建议5.6以上
2:安装前工作
2.1:数据库准备,Apollo需要两个库,ApolloPortalDB和ApolloConfigDB,官方准备好了sql文件但是下载速度比较慢,可以通过下面的百度网盘地址进行提取,需要注意的是,如果已经有过apollo库了,一定要备份,否则将会覆盖数据,sql下载地址:
链接:https://pan.baidu.com/s/1RT5wQvNORuLe3Gwuw4pifg
提取码:ACE1
官方下载地址--》ApolloPortalDB:https://github.com/apolloconfig/apollo-quick-start/blob/master/sql/apolloportaldb.sql
官方下载地址--》ApolloConfigDB:https://github.com/apolloconfig/apollo-quick-start/blob/master/sql/apolloconfigdb.sql
2.2:下载安装包
2.2.1:直接下载已经构建好的包
同样的,下载速度还是比较慢,所以还是用下面这个可以直接提取我使用的这个版本
链接:https://pan.baidu.com/s/1nEvOhc6y0ebREylX7cdzqg
提取码:ACE1
官方提取地址:https://github.com/apolloconfig/apollo/releases
下载:apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip、apollo-portal-x.x.x-github.zip
2.3:配置数据库连接
解压下载的包,数据库配置在:config/application-github.properties中,配置时,注意不要有空格
apollo-configservice和apollo-adminservice连接的库是一样的
apollo-configservice: spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8 spring.datasource.username = admin spring.datasource.password = 123456
apollo-adminservice: spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?useSSL=false&characterEncoding=utf8 spring.datasource.username = admin spring.datasource.password = 123456
apollo-portal的库是下面这个
apollo-portal: spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?useSSL=false&characterEncoding=utf8 spring.datasource.username = admin spring.datasource.password = 123456
3:给文件夹赋权,启动脚本.
注意:启动完后如果是成功的状态,则一般来说需要等一段时间,等项目启动完毕访问才有效。如果启动失败了,会提示一个失败的日志路径,可以看看是什么原因导致的。
3.1:赋权命令:chmod -R 777 文件夹
3.2:启动脚本命令在三个文件夹里面的[scripts]文件下,启动:./scripts/startup.sh
注意:部分自己测试玩的时候,虚拟机如果是防火墙开着的情况下,需要给端口开权限或者关闭防火墙,开启端口的请看另一篇博客:https://www.cnblogs.com/aiqingbi-aifeifei/p/14176154.html,三个服务的端口分别是,8070、8080,、8090,还得保证这些端口是没有被占用的
3.3:访问路径是 服务器IP + 8070,初始密码是:apollo/admin
4:多环境配置
多环境配置,需要让 portal访问不同的config,所以,先把apollo-configservice-x.x.x-github.zip、apollo-adminservice-x.x.x-github.zip,放到另一台机器上,定义它是开发或者测试环境,然后打开portal项目的apollo-env.properties,配置相关的环境即可,由于我这里生产服务配置就是本机,
大概部署情况如下截图
首先是生产环境 + 页面
其次是开发环境
最后看下apollo的页面就是这样的
再看一下环境配置
5:整合SpringBoot
5.1:引入jar包
<dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.7.0</version> </dependency>
5.2:修改配置文件
需要注意的是,里面有个饥饿加载的配置(eagerLoad),建议加上值是true,这个是涉及到spring加载顺序,如果不开启,那么在某些情况下,可能会导致项目里的参数无法被apollo覆盖
app: id: apollo_test_admin apollo: meta: http://192.168.197.160:8080 bootstrap: enabled: true eagerLoad: enabled: true namespaces: application
5.3:启动类加注解:@EnableApolloConfig
6:使用
6.1:测试方法,随便写个controller,用@value注解获取,因为这个是实时获取的,方便测试,配置文件本地加上一个参数名和值。然后启动,先访问接口,看获取的值是否是本地配置文件的值。
然后,在apollo里面,对应的环境,也配置上一样的参数,但是值要写不一样的,然后访问接口,如果值变成了apollo里面的值说明整合成功!