携程 Apollo (阿波罗)分布式配置中心,Linux下环境搭建与 springboot 整合使用(Quick Start)
本篇文章为快速部署体验,不支持添加环境,实际使用请转移分布式部署
实际使用请看分布式部署:
网络参考: https://blog.csdn.net/luhong327/article/details/81453001
官网文档:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97
一、 Apollo 是什么?
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
Apollo阿波罗特点
用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序。
统一管理不同环境、不同集群的配置
所有的配置发布都有版本概念,从而可以方便的支持配置的回滚。
配置修改实时生效(热发布)
用户在Apollo修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序

二、 Linux下 Apollo 环境搭建
1、搭建前环境
1、 jdk1.7上。建议1.8 (当前1.8)
2、 mysql 5.6.5上 (当前8.0)
Linux- jkd1.8安装及环境变量配置详情:https://editor.csdn.net/md/?articleId=99173682
2、下载源码
建议使用本文当前源码,github源码版本不一致,配置方法可以会不同
本文当前源码:https://pan.baidu.com/s/1MzlXlCzRcUBqqb56LwWseA 提取码:irpw
github源码地址:https://github.com/nobodyiam/apollo-build-scripts

3、上传源码包并解压
压缩前后文件展示

命令
yum install -y zip unzip2 # 安装解压命令工具
unzip apollo-build-scripts-master.zip # 解压
4、数据库执行sql命令

执行sql 命令自动建表

5、修改demo.sh 脚本

修改数据库连接信息

6、启动
./demo.sh start ## 启动
出现如下启动成功

7、访问admin平台
ip+8070 或者 域名+8070 访问,如我的:http://192.168.177.128:8070/
默认账号密码:用户名:apollo --> 密码:admin
如果无法访问请检查防火墙设置
systemctl stop firewalld ## 暂时关闭防火墙
systemctl disable firewalld ## 永久关闭防火墙

这样环境就搭建成功了

三、 springboot 整合 Apollo
1、核心依赖 jar 包导入本地maven 仓库
下载核心依赖 jar包
下载链接:https://pan.baidu.com/s/1MzlXlCzRcUBqqb56LwWseA 提取码:irpw

执行打入maven仓库脚本

2、springboot 中配置Apollo
核心maven 依赖
<!-- apollo-client -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 为了编码方便,并非apollo 必须的依赖 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
3、application.yml 添加配置
配置对比图,这里可以先使用默认命名空间 application,默认时namespaces可不配置

配置yml
server:
port: 8001
app:
## AddId
id: apollo-demo
apollo:
## configservice配置中心地址
meta: http://192.168.177.128:8080
bootstrap:
# 需要加载的名字空间1,需要加载的名字空间2,...,默认 application可不配置
namespaces: properties,redis
enabled: true
eagerLoad:
enabled: true
4、添加获取配置代码
获取name,name2的值
@RestController
public class HelloController {
private static Logger logger = LoggerFactory.getLogger( HelloController.class );
@Value( "${name:null}" )
String name;
@Value( "${name2:null}" )
String name2;
@GetMapping("test")
public String test() {
return name+"-"+name2;
}
}
5、启动类添加-@EnableApolloConfig
@SpringBootApplication
@EnableApolloConfig
public class SpringBootApolloApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApolloApplication.class, args);
}
}
6、访问
修改发布后可实时刷新

7、监听属性修改
当有属性发生修改,打印日志内容
@Component
@Slf4j
public class MyCommandLineRunner implements CommandLineRunner {
@ApolloConfig
private Config config;
@Override
public void run(String... args) throws Exception {
config.addChangeListener(new ConfigChangeListener() {
@Override
public void onChange(ConfigChangeEvent changeEvent) {
log.debug("####分布式配置中心监听#####" + changeEvent.changedKeys().toString());
}
});
}
}
更多推荐


所有评论(0)