Apollo配置中心热加载mysql_Apollo分布式配置中心部署以及使用

本文介绍了Apollo分布式配置中心的安装部署过程,包括Apollo的背景介绍、配置数据库、下载代码、修改环境配置、数据库初始化、编译打包、服务部署、访问测试,以及如何在应用程序中使用Apollo配置信息。此外,还提到了Apollo配置中心的热加载功能,适用于微服务配置管理。
摘要由CSDN通过智能技术生成

一、简介

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

官方github:https://github.com/ctripcorp/apollo

作者对Apollo对介绍:https://github.com/ctripcorp/apollo/wiki/Apollo配置中心介绍

二、安装部署

基础设施

本次部署环境为DEV(开发环境)、FAT(测试环境)、UAT(预生产)、PRO(生产)

应用服务器:

7424e967795e8697df15a15a0c92c5fd.png

数据库服务器:

f4c16aa22d8ce8c60865a09de3871cf5.png

配置

下载代码:

git clone https://github.com/ctripcorp/apollo.git

1

比较重要的几个项目:

apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端

apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka

apollo-portal:提供Web界面供用户管理配置

apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能

593fa349ce7ad6ac6c2e7f455962d34c.png

上图简要描述了配置发布的大致过程:

用户在Portal操作配置发布

Portal调用Admin Service的接口操作发布

Admin Service发布配置后,发送ReleaseMessage给各个Config Service

Config Service收到ReleaseMessage后,通知对应的客户端

数据库初始化:

下面的sql为大写格式,注意数据库的大小写敏感设置

ApolloPortalDB:执行apollo\scripts\sql\apolloportaldb.sql

ApolloConfigDB:DEV FAT UAT PRO 环境执行apollo\scripts\sql\apolloconfigdb.sql

调整配置并打包:

在Apollo项目中找到目录apollo\scripts\的配置文件build.bat或者build.bat

数据库配置

修改数据库配置,上面的是ApolloConfigDB配置,下面的是ApolloPortalDB配置:

# apollo config db info 该数据库配置只需要配置一次,不同环境无需修改

apollo_config_db_url=jdbc:mysql://192.168.35.227:3306/ApolloConfigDB?characterEncoding=utf8

apollo_config_db_username=XXXX

apollo_config_db_password=XXXX

# apollo portal db info 该数据库依据不同环境配置对应的数据库连接,并且需要多次打对应环境的JAR包

apollo_portal_db_url=jdbc:mysql://192.168.35.226:3306/ApolloPortalDB?characterEncoding=utf8

apollo_portal_db_username=XXXX

apollo_portal_db_password=XXXX

1

2

3

4

5

6

7

8

9

apollo config db info 该数据库配置只需要配置一次,不同环境无需修改

apollo portal db info 该数据库依据不同环境配置对应的数据库连接,并且需要多次打

修改环境调用地址

# meta server url, different environments should have different meta server addresses

dev_meta=http://192.168.35.207:9100

fat_meta=http://192.168.35.208:9100

uat_meta=http://192.168.35.209:9100

pro_meta=http://192.168.35.210:9100

1

2

3

4

5

修改数据库数据

在DEV FAT UAT PRO 对应的ApolloConfigDB数据库中,找到表ServerConfig中的eureka.service.url配置项:

UPDATE apolloconfigdb.ServerConfig SET ServerConfig.`Value`='http://localhost:9100/eureka/' WHERE `Key`='eureka.service.url';

1

具体eureka配置,可以查看官网:https://github.com/ctripcorp/apollo/wiki/分布式部署指南

编译、打包

./build.sh

1

该脚本会依次打包apollo-configservice, apollo-adminservice, apollo-portal和apollo-client。

由于ApolloConfigDB在每个环境都有部署,所以对不同环境的config-service和admin-service需要使用不同的数据库连接信息打不同的包,portal和client只需要打一次包即可

开始部署

部署程序到对应的服务器

部署apollo-configservice

将apollo-configservice/target/目录下的apollo-configservice-x.x.x-github.zip上传到服务器上,解压

修改scripts/startup.sh :

LOG_DIR=/opt/logs/100003171

SERVER_PORT=9100

1

2

执行scripts/startup.sh即可

如需停止服务,执行scripts/shutdown.sh.

部署apollo-adminservice

将apollo-adminservice/target/目录下的apollo-adminservice-x.x.x-github.zip上传到服务器上,解压

修改scripts/startup.sh:

LOG_DIR=/opt/logs/100003172

SERVER_PORT=9101

1

2

执行scripts/startup.sh即可

如需停止服务,执行scripts/shutdown.sh.

部署apollo-portal

将apollo-portal/target/目录下的apollo-portal-x.x.x-github.zip上传到服务器上,解压

修改scripts/startup.sh:

LOG_DIR=/opt/logs/100003173

SERVER_PORT=9102

1

2

执行scripts/startup.sh即可

如需停止服务,执行scripts/shutdown.sh.

访问测试

上面部署完成,可以测试

访问不同环境的eureka,查看服务注册情况是否正确:

http://192.168.35.207:9100/

1

如果可以看到:

192.168.35.207:apollo-adminservice:9101

192.168.35.207:apollo-configservice:9100

1

2

两个服务都为UP,正常!

访问客户端:

http://192.168.35.206:9102/

1

登录,默认用户名密码为:apollo/admin

新建项目测试。

三、使用配置中心配置信息

maven引入上面步骤编译打包成功的apollo-core和apollo-client包:

com.ctrip.framework.apollo

apollo-core

0.11.0-SNAPSHOT

com.ctrip.framework.apollo

apollo-client

0.11.0-SNAPSHOT

1

2

3

4

5

6

7

8

9

10

创建app.properties

请确保classpath:/META-INF/app.properties文件存在,并且其中内容为自己的项目名称,而且要保持唯一:

app.id=demo

1

环境变量配置

本地开发

如果是本地开发,可以在开发工具添加Environment:

env=DEV

1

线上环境配置方式:

使用Java启动参数添加java -Denv=YOUR-ENVIRONMENT -jar xxx.jar

通过操作系统的System Environment

通过配置文件:

对于Mac/Linux,文件位置为/opt/settings/server.properties

对于Windows,文件位置为C:\opt\settings\server.properties

配置apollo-env.properties

在项目中引用apollo-core和apollo-client包,在apollo-core包中可以看到apollo-env.properties配置文件,默认配置为打包前配置的信息:

local.meta=http://localhost:8080

dev.meta=http://192.168.35.207:9100

fat.meta=http://192.168.35.208:9100

uat.meta=http://192.168.35.209:9100

lpt.meta=${lpt_meta}

pro.meta=http://192.168.35.210:9100

1

2

3

4

5

6

如果需要修改或者覆盖的话,在项目的resources从上面复制一个apollo-env.properties文件,修改对应环境信息就可以了

启用配置

在启动类添加@EnableApolloConfig注解即可:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @author chihiro.zhang

*/

@EnableApolloConfig

@SpringBootApplication

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

测试

添加一个测试的类DemoConfiguration,当然配置中心要有下面配置的配置信息:

@Configuration

@EnableAutoConfiguration

public class DemoConfiguration {

@Value("${demo}")

private String demo;

}

1

2

3

4

5

6

完成!

四、部署方案

这个图是计划部署的方案,并不是上面写的例子的方案

f39391fa5fa206e4b854d32477f7726f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值