溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker compose怎樣一鍵部署分布式配置中心Apollo

發布時間:2021-09-24 15:18:41 來源:億速云 閱讀:202 作者:柒染 欄目:開發技術

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=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個服務,分別為:

  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 僅供測試使用

初始化數據庫
初始化 apolloconfigdb.sql 和 apolloportaldb.sql

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

訪問 http://10.0.0.53:8070/ #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);

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女