日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

簡介

說起分布式肯定要想到分布式配置中心、分布式日志、分布式鏈路追蹤等

在分布式部署中業務往往有很多配置比如: 應用程序在啟動和運行時需要讀取一些配置信息,配置基本上伴隨著應用程序的整個生命周期,比如:數據庫連接參數、啟動參數等,都需要去維護和配置,但不可能一臺臺服務器登錄上去配置
今天我要跟大家分享一下分布式配置中心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);

參考

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

分享到:
標簽:一鍵 分布式 詳解 部署 配置
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定