一、Apollo配置中心介绍:
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
实现方式:
二、服务端搭建
主要步骤:
- 服务端数据库环境准备
- 服务端服务下载安装与启动
- 服务端控制台访问与项目配置创建
1,服务端数据库环境准备
在数据中导入执行脚本,脚本信息链接:apollo 配置中心服务端 建表脚本。
2,服务端服务下载安装与启动
下载地址:https://github.com/ctripcorp/apollo/releases/tag/v1.8.1
将下载的文件上传到linux上,因为我们后面需要通过压缩包中的 shell 脚本进行启动。
我们在linux 任意目录下创建apollo目录,并在该目录下创建三个应用的子目录分别如下:
然后将下载好的zip文件分别上传到对应的目录下进行解压。 unzip xxxxxxx.zip。
然后修改每个解压后的 config目录下的 application-github.properties 文件中数据库链接信息。
最后再修改 protal目录下config 目录下的 apollo-env.properties 环境配置信息,修改每个不同环境下的 服务端Eureka地址,eureka端口默认8080,由于其他的环境暂时没有,暂且注释掉。
修改完成后按照configservice->adminservice->portal 顺序进行启动(启动shell脚本在解压文件的script目录下startup.sh,使用./startup.sh 直接启动即可),每次正常启动完成后,在启动下一个服务。三个依次启动完成后我们可以通过http://192.168.17.132:8080/ 访问Eureka控制台,ip为你的linux地址。http://192.168.17.132:8070/ 为Apollo的控制台登录页面(默认账户:apollo/admin)。
登录成功后,点击创建项目输入项目信息,进行提交:
三、客户端搭建
主要步骤:
- 添加依赖
- 添加配置项
- 添加启动参数运行
- controller 测试配置读取代码
- 使用apollo测试发布参数
1,添加依赖
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.8.0</version>
</dependency>
2,添加配置项
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://192.168.17.132:8080/eureka/
instance:
prefer-ip-address: true #使用ip进行注册
instance-id: ${spring.cloud.client.ip-address}:${server.port} #向注册中心注册服务ID
lease-renewal-interval-in-seconds: 5 #发送心跳间隔时间 秒
lease-expiration-duration-in-seconds: 10 # 服务续约时间 从最后一次心跳发送后算起 10秒之后服务端才可以对该服务做剔除操作
name: testName
apollo:
bootstrap:
enabled: true
meta: http://192.168.17.132:8080
app:
id: cloud-payment-service
3,添加启动参数运行
在idea的启动配置处VM options: 添加启动环境参数 -Denv=DEV
4,controller 测试配置读取代码
@RestController
@Slf4j
public class PaymentController {
@Value("${name}")
private String name;
@GetMapping("/payment/get/name")
public CommonResult getPaymentTimeout(){
return new CommonResult(0,"name:"+name,null);
}
}
5,使用apollo测试发布参数
新增后,点击发布。新增时key为我们需要更新的配置文件的key,value为新的值。新增后属性状态为未发布,需要点击发布后生效。