dubbo配置中心-Apollo部署及使用

dubbo配置中心-Apollo部署及使用

一、简介

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

资料
官方github
作者对Apollo对介绍

二、安装部署

1.硬件准备
  • 应用服务器
环境服务器服务端口
/192.168.35.206apollo-portal9102
DEV192.168.35.207apollo-configservice9100
apollo-adminservice9101
FAT192.168.35.208apollo-configservice9100
apollo-adminservice9101
UAT192.168.35.209apollo-configservice9100
apollo-adminservice9101
PRO192.168.35.210apollo-configservice9100
apollo-adminservice9101
  • 数据库服务器
环境服务器服务数据库端口
/192.168.35.226apollo-portalApolloPortalDB9102
DEV192.168.35.227apollo-configservice;apollo-adminserviceApolloPortalDB3306
FAT192.168.35.228apollo-configservice;apollo-adminserviceApolloPortalDB3306
UAT192.168.35.229apollo-configservice;apollo-adminserviceApolloPortalDB3306
PRO192.168.35.230apollo-configservice;apollo-adminserviceApolloPortalDB3306
2.组成介绍
  1. 下载项目:git clone https://github.com/ctripcorp/apollo.git
    1. apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端
    2. apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka
    3. apollo-portal:提供Web界面供用户管理配置
    4. apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
  2. 流程图示:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6bbUTTLL-1574918971349)(en-resource://database/6145:1)]
3.配置并打包
a.数据库初始化
  1. ApolloPortalDB:执行 apollo\scripts\sql\apolloportaldb.sql
  2. ApolloConfigDB:DEV FAT UAT PRO 环境执行 apollo\scripts\sql\apolloconfigdb.sql
b.调整配置并打包
  1. 数据库配置
# 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. 修改环境调用地址
# 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. 修改数据库数据
    在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. 打包
    1. 该脚本会依次打包apollo-configservice, apollo-adminservice, apollo-portal和apollo-client。
    2. 由于ApolloConfigDB在每个环境都有部署,所以对不同环境的config-service和admin-service需要使用不同的数据库连接信息打不同的包,portal和client只需要打一次包即可
./build.sh
4.部署
  1. 部署apollo-configservice
    1. apollo-configservice/target/ 目录下的 apollo-configservice-x.x.x-github.zip 上传到服务器上,解压。修改 scripts/startup.sh。修改好执行即可
LOG_DIR = /opt/logs/100003171
SERVER_PORT = 9100
  1. 部署apollo-adminservice
    1. apollo-adminservice/target/ 目录下的 apollo-adminservice-x.x.x-github.zip 上传到服务器上,解压修改scripts/startup.sh。修改好执行即可
LOG_DIR = /opt/logs/100003172
SERVER_PORT = 9101
  1. 部署apollo-portal
    1. apollo-portal/target/ 目录下的 apollo-portal-x.x.x-github.zip 上传到服务器上,解压修改scripts/startup.sh 。修改好执行即可
LOG_DIR = /opt/logs/100003173
SERVER_PORT = 9102
  1. 登录测试:用户名密码为:apollo/admin
http://192.168.35.206:9102/
5. 更详细的apollo服务端配置

官方快速启动文档

三、使用配置中心

1.maven配置
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-core</artifactId>
    <version>0.11.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>com.ctrip.framework.apollo</groupId>
    <artifactId>apollo-client</artifactId>
    <version>0.11.0-SNAPSHOT</version>
</dependency>
2.创建app.properties
  1. 文件路径:classpath:/META-INF/app.properties
  2. 内容示例
app.id = demo
3.环境变量配置
a.本地
  1. 开发工具添加Environment
env = DEV
b.线上
  1. 使用Java启动参数添加 java -Denv=YOUR-ENVIRONMENT -jar xxx.jar
  2. 通过操作系统的System Environment
  3. 通过配置文件:
    1. 对于Mac/Linux,文件位置为 /opt/settings/server.properties
    2. 对于Windows,文件位置为 C:\opt\settings\server.properties
4.配置apollo-env.properties
  1. 在项目中引用 apollo-coreapollo-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
5.启动配置
  1. 在启动类添加 @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);
	}
}
6.测试
  1. 添加一个测试的类 DemoConfiguration,当然配置中心要有下面配置的配置信息:
@Configuration
@EnableAutoConfiguration
public class DemoConfiguration {
    @Value("${demo}")
    private String demo;
}
7.更详细java整合方式

官方Java客户端使用指南

四、部署方案

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yP2I2sD9-1574918971350)(en-resource://database/6151:1)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值