数据库教程:docker compose 一键部署分布式配置中心Apollo的过程详解

简介说起分布式肯定要想到分布式配置中心、分布式日志、分布式链路追踪等在分布式部署中业务往往有很多配置比如: 应用程序在启动和运行时需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数


简介

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

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

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

搭建

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

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

  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=https://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=https://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个服务,分别为:

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

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

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

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

  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 仅供测试使用

初始化数据库
初始化 和

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

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

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

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

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

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

查看启动情况

docker-compose ps

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

访问 #apollo管理端

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

默认用户名:apollo
默认密码:admin

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

创建一个测试项目

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

测试

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

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

添加apollo

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

配置apollo

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

配置如上

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

添加测试内容
代码中获取apollo

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

启动程序 请求/weatherforecast/apollotest

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

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

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

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

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

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

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

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

刷新

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

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

代码

示例中的代码在
https://github.com/yuefengkai/brook.apollo
欢迎大家start

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

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

参考

1.
2.
3.

到此这篇关于docker compose 一键部署分布式配置中心apollo的文章就介绍到这了,更多相关docker compose部署分布式配置中心apollo内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多数据库技术:docker compose 一键部署分布式配置中心Apollo的过程详解,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/833394.html

(0)
上一篇 2021年9月22日
下一篇 2021年9月22日

精彩推荐