小知识:docker compose 一键部署分布式配置中心Apollo的过程详解

简介

说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等

在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数等,都需要去维护和配置,但不可能一台台服务器登录上去配置

今天我要跟大家分享一下分布式配置中心apollo:

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

搭建

官方文档中有两种搭建方式一种是下载源代码进行搭建,一种是使用docker或者k8s进行搭建,今天我们使用docker来进行搭建,毕竟docker对于开发者来说更友好一些。

如果已有mysql服务,推荐已有mysql服务或者云服务rds来当数据库使用,毕竟数据无价。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
version: “3”
services:
apollo-configservice: #config service提供配置的读取、推送等功能,服务对象是apollo客户端
image: apolloconfig/apollo-configservice:1.8.1
restart: always
#container_name: apollo-configservice
volumes:
– ./logs/apollo-configservice:/opt/logs
ports:
– “8080:8080”
environment:
– tz=asia/shanghai   
– server_port=8080
– eureka_instance_ip_address=xxx.xxx.xxx.xxx
– eureka_instance_home_page_url=http://xxx.xxx.xxx.xxx:8080
– spring_datasource_url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/apolloconfigdb?characterencoding=utf8&servertimezone=asia/shanghai
– spring_datasource_username=root
– spring_datasource_password=mysqkpassword!
apollo-adminservice: #admin service提供配置的修改、发布等功能,服务对象是apollo portal(管理界面)
image: apolloconfig/apollo-adminservice:1.8.1
restart: always
#container_name: apollo-adminservice
volumes:
– ./logs/apollo-adminservice:/opt/logs
ports:
– “8090:8090”
depends_on:
– apollo-configservice
environment:
– tz=asia/shanghai   
– server_port=8090
– eureka_instance_ip_address=xxx.xxx.xxx.xxx
– spring_datasource_url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/apolloconfigdb?characterencoding=utf8&servertimezone=asia/shanghai
– spring_datasource_username=root
– spring_datasource_password=mysqkpassword!
apollo-portal: #管理界面
image: apolloconfig/apollo-portal:1.8.1
restart: always
container_name: apollo-portal
volumes:
– ./logs/apollo-portal:/opt/logs
ports:
– “8070:8070”
depends_on:
– apollo-adminservice
environment:
– tz=asia/shanghai   
– server_port=8070
– eureka_instance_ip_address=xxx.xxx.xxx.xxx
– apollo_portal_envs=dev
– dev_meta=http://xxx.xxx.xxx.xxx:8080
– spring_datasource_url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/apolloportaldb?characterencoding=utf8&servertimezone=asia/shanghai
– spring_datasource_username=root
– spring_datasource_password=mysqkpassword!

从以上docker-compose.yaml中可以看出共包含3个服务,分别为:

config service提供配置的读取、推送等功能,服务对象是apollo客户端 admin service提供配置的修改、发布等功能,服务对象是apollo portal(管理界面) portal(管理界面)

如果想了解它们之间的运行方式推荐查看官方文档

日志挂载到外部./logs目录下

大家可以看到上方并没有给出mysql的部署,如果需要使用容器部署mysql可以参照下方docker-compose.yaml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: 3
services:
mysql: # myslq 数据库
image: mysql/mysql-server
container_name: mysql
restart: always
command: –character-set-server=utf8mb4 –collation-server=utf8mb4_unicode_ci –lower-case-table-names=1
environment: #环境变量
mysql_root_host: “%”
mysql_root_password: password
mysql_user: brook
mysql_password: password
ports:
– “3306:3306”

上述mysql的docker-compose.yaml 仅供测试使用

初始化数据库

初始化 apolloconfigdb.sql 和 apolloportaldb.sql

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-猿站网-插图

数据库初始化后,记得修改apolloconfigdb库中serverconfig表的 eureka.service.url 否则 apollo-adminservice无法注册到eureka

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-1猿站网-插图

修改后切换到apollo docker-compose.yaml目录 然后使用

docker-compose up -d #启动文件中的三个服务并且后台运行

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-2猿站网-插图

查看启动情况

docker-compose ps

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-3猿站网-插图

访问 http://10.0.0.53:8070/ #Apollo管理端

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-4猿站网-插图

默认用户名:apollo

默认密码:admin

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-5猿站网-插图

创建一个测试项目

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-6猿站网-插图 %小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-7猿站网-插图

测试

创建一个.netcore项目 添加apollo.net client

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-8猿站网-插图

添加apollo

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-9猿站网-插图

配置apollo

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-10猿站网-插图

配置如上

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-11猿站网-插图

添加测试内容

代码中获取apollo

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-12猿站网-插图

启动程序 请求/weatherforecast/apollotest

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-13猿站网-插图

发现并未获取到apollo中设置的配置

检查apollo发现配置的值并没有发布

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-14猿站网-插图

所以大家配置或者修改了apollo一定记得发布,我们发布后再次刷新浏览器

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-15猿站网-插图

发现数据已经是新的数据了,我们再次修改一下apollo的value

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-16猿站网-插图

刷新

%小知识:docker compose 一键部署分布式配置中心Apollo的过程详解-17猿站网-插图

致此 apollo已经搭建完毕并且可以正常使用了

代码

示例中的代码在

https://github.com/yuefengkai/brook.apollo 欢迎大家start

注意如果程序启动后无法拉取配置,可以打开apollo的日志,在控制台中可以看到详细的配置 放到program.cs main函数第一行即可!

logmanager.useconsolelogging(com.ctrip.framework.apollo.logging.loglevel.trace);

参考

1.https://github.com/apolloconfig/apollo.net 2.https://github.com/apolloconfig/apollo 3.https://github.com/apolloconfig/apollo/tree/master/scripts/docker-quick-start

到此这篇关于docker compose 一键部署分布式配置中心apollo的文章就介绍到这了,更多相关docker compose部署分布式配置中心apollo内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/yuefengkai/archive/2021/09/13/15262523.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:如何在 Helm Chart 中兼容不同的 Kubernetes 版本?

2023-3-15 20:36:39

建站知识

小知识:教你使用Docker搭建gitlab社区汉化版的详细过程

2023-3-15 20:47:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索