日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker-compose 一键部署分布式配置中心Apollo

發布時間:2023/12/4 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.1restart: always#container_name: apollo-configservicevolumes:- ./logs/apollo-configservice:/opt/logsports:- "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.1restart: always#container_name: apollo-adminservicevolumes:- ./logs/apollo-adminservice:/opt/logsports:- "8090:8090"depends_on:- apollo-configserviceenvironment:- 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.1restart: alwayscontainer_name: apollo-portalvolumes:- ./logs/apollo-portal:/opt/logsports:- "8070:8070"depends_on:- apollo-adminserviceenvironment:- 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

    version: '3'services: mysql: # myslq 數據庫image: 'mysql/mysql-server'container_name: 'mysql'restart: alwayscommand: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1environment: #環境變量MYSQL_ROOT_HOST: "%" MYSQL_ROOT_PASSWORD: passwordMYSQL_USER: brookMYSQL_PASSWORD: passwordports:- "3306:3306"

    上述mysql的docker-compose.yaml 僅供測試使用

    初始化數據庫
    初始化

    [apolloconfigdb.sql](https://github.com/apolloconfig/apollo/blob/master/scripts/docker-quick-start/sql/apolloconfigdb.sql) 和 [apolloportaldb.sql](https://github.com/apolloconfig/apollo/blob/master/scripts/docker-quick-start/sql/apolloportaldb.sql)


    數據庫初始化后,記得修改apolloconfigdb庫中serverconfig表的 eureka.service.url 否則 apollo-adminservice無法注冊到eureka

    修改后切換到Apollo docker-compose.yaml目錄 然后使用

    docker-compose up -d #啟動文件中的三個服務并且后臺運行


    查看啟動情況

    docker-compose ps


    訪問 http://10.0.0.53:8070/ #Apollo管理端

    默認用戶名:apollo
    默認密碼:admin

    創建一個測試項目

    測試

    創建一個.NetCore項目 添加Apollo.net client

    添加Apollo

    配置Apollo

    配置如上

    添加測試內容
    代碼中獲取Apollo

    啟動程序 請求/weatherforecast/apollotest

    發現并未獲取到apollo中設置的配置

    檢查Apollo發現配置的值并沒有發布

    所以大家配置或者修改了Apollo一定記得發布,我們發布后再次刷新瀏覽器

    發現數據已經是新的數據了,我們再次修改一下Apollo的Value

    刷新

    致此 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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。