色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Docker-Compose的Apollo部署安裝與使用

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 2024-01-02 10:15 ? 次閱讀

前言

Apollo(阿波羅)是攜程開源的分布式配置管理中心

本文主要介紹其基于 Docker-Compose 的部署安裝和一些使用的經(jīng)驗(yàn)

特點(diǎn)

成熟,穩(wěn)定

支持管理多環(huán)境/多集群/多命名空間的配置

配置修改發(fā)布實(shí)時(shí)(1s)通知到應(yīng)用程序

支持權(quán)限控制、配置繼承,版本管理,灰度發(fā)布,使用監(jiān)控等

官方提供了 。NET/Java/Go 的 SDK 以及 Http 接口

國產(chǎn)中文,文檔友好,大廠背書,使用方案成熟

使用簡(jiǎn)單,支持 Docker , K8S,官方也提供多種高可用方案參考

使用情況

目前在微服務(wù)項(xiàng)目中做為配置中心,表現(xiàn)穩(wěn)定,體驗(yàn)良好

內(nèi)存情況:新安裝啟動(dòng)在 100M 左右,工作中實(shí)際 20 項(xiàng)目,80 客戶端使用時(shí),三個(gè)服務(wù)占 1.5G 左右

測(cè)試環(huán)境和生產(chǎn)環(huán)境分開,安全及避免錯(cuò)誤操作

為什么選擇 Apollo:穩(wěn)定&簡(jiǎn)單,雖然比不上 Nacos 的性能,也沒有服務(wù)發(fā)現(xiàn)功能,但是穩(wěn)定啊!!!

在我自己部署前,會(huì)覺得這個(gè)東西好難,好重,好麻煩。寫這篇文章的時(shí)候的感受只有兩個(gè)字:牛*

實(shí)踐

準(zhǔn)備

當(dāng)前版本:v2.1

apollo-db:mysql 5.6.6+ 數(shù)據(jù)庫

默認(rèn)端口:3306

依賴兩個(gè)數(shù)據(jù)庫:ApolloPortalDB,ApolloConfigDB

默認(rèn)賬號(hào)/密碼:apollo/admin

apollo-configservice:Config Service 提供配置的讀取、推送等功能。

默認(rèn)端口:8080

應(yīng)用程序端連接到此服務(wù)使用

apollo-adminservice: Admin Service 提供配置的修改、發(fā)布等功能

默認(rèn)端口:8090

管理界面使用此服務(wù)

apollo-portal:Portal 提供 Web 界面用來管理配置

默認(rèn)端口:8070

Web 管理界面

默認(rèn)賬號(hào)/密碼:apollo/admin

Deureka:提供服務(wù)注冊(cè)和發(fā)現(xiàn)

Config Service 和 Admin Service 會(huì)向 Eureka 注冊(cè)服務(wù),并保持心跳

在 Admin Service 需要指定eureka.service.url

服務(wù)配置方式的優(yōu)先級(jí)從高到低分別為:系統(tǒng)參數(shù)>環(huán)境變量>外部配置文件

使用 Docker Compose 安裝

本篇文章基于 Docker V24 及 Docker Compose V2,安裝可以參考之前的文章

配置說明

掛載了日志文件到。/logs 目錄

固定了鏡像版本 mysql v5.7 , apollo v2.1.0

指定 MySql 賬號(hào)密碼: root devops666 ,修改了端口映射 13306:3306

掛載 MySql 數(shù)據(jù),初始化腳本文件夾 。/initsql(v2.1 腳本)

Apollo 服務(wù)中使用服務(wù)名 apollo-db 連接 MySql:SPRING_DATASOURCE_URL:'...apollo-db:3306/...'

設(shè)置先啟動(dòng)數(shù)據(jù)庫:depends_on:apollo-db

apollo-configservice 服務(wù)中指定向 Deureka(Apollo 服務(wù)發(fā)現(xiàn)組件)注冊(cè)的地址:http://192.168.123.214:8080

apollo-adminservice 服務(wù)中指定向 Deureka 注冊(cè)的服務(wù)地址:http://192.168.123.214:809

apollo-adminservice 服務(wù)需指定 Deureka 服務(wù)地址:-Deureka.service.url=``http://192.168.123.214:8080/eureka/

指定網(wǎng)絡(luò):devopsnetwork (docker network create devopsnetwork)

web 管理端默認(rèn)賬號(hào)密碼:apollo admin,登錄后修改!!!

配置文件 compose.yml

準(zhǔn)備好 compose.yml 及 。/initsql/初始化腳本,修改其中的 IP

拷貝到服務(wù)器

然后運(yùn)行docker compose up -d即可

 version: '3.1'
 services:
   # Apollo數(shù)據(jù)庫
   apollo-db:
     image: mysql:5.7
     container_name: apollo_db_5_7
     restart: always
     environment:
       TZ: Asia/Shanghai
       MYSQL_ROOT_PASSWORD: 'devops666'
     ports:
       - "13306:3306"
     volumes:
       - ./initsql:/docker-entrypoint-initdb.d
       - ./data:/var/lib/mysql
     networks:
       - devopsnetwork


   # Apollo 服務(wù)發(fā)現(xiàn)注冊(cè)中心
   apollo-configservice:
     container_name: apollo_configservice_2_1
     image: apolloconfig/apollo-configservice:2.1.0
     restart: always
     depends_on:
       - apollo-db
     environment:
       SPRING_DATASOURCE_URL: 'jdbc//apollo-db:3306/ApolloConfigDB?characterEncoding=utf8'
       SPRING_DATASOURCE_USERNAME: 'root'
       SPRING_DATASOURCE_PASSWORD: 'devops666'
       JAVA_OPTS: "-Deureka.instance.homePageUrl=http://192.168.123.214:8080"
       # EUREKA_INSTANCE_HOME_PAGE_URL: http://192.168.123.214:8080
       # EUREKA_INSTANCE_PREFER_IP_ADDRESS: false
     volumes:
       - ./logs:/opt/logs
     ports:
       - "8080:8080"
     networks:
       - devopsnetwork


   #核心接口服務(wù)
   apollo-adminservice:
     container_name: apollo_adminservice_2_1
     image: apolloconfig/apollo-adminservice:2.1.0
     restart: always
     environment:
       SPRING_DATASOURCE_URL: 'jdbc//apollo-db:3306/ApolloConfigDB?characterEncoding=utf8'
       SPRING_DATASOURCE_USERNAME: 'root' 
       SPRING_DATASOURCE_PASSWORD: 'devops666'
       JAVA_OPTS: "-Deureka.instance.homePageUrl=http://192.168.123.214:8090 -Deureka.service.url=http://192.168.123.214:8080/eureka/ "
     depends_on:
       - apollo-db
     ports:
       - "8090:8090"
     volumes:
       - ./logs/:/opt/logs      
     networks:
       - devopsnetwork
       
  
   apollo-portal:
     image: apolloconfig/apollo-portal:2.1.0
     container_name: apollo_portal_2_1
     restart: always
     environment:
       SPRING_DATASOURCE_URL: 'jdbc//apollo-db:3306/ApolloPortalDB?characterEncoding=utf8'
       SPRING_DATASOURCE_USERNAME: 'root'
       SPRING_DATASOURCE_PASSWORD: 'devops666'
       APOLLO_PORTAL_ENVS: 'dev'      
       DEV_META: 'http://192.168.123.214:8080'
       # 默認(rèn)賬號(hào) apollo admin
     depends_on:
       - apollo-db
     ports:
       - "8070:8070"
     volumes:
       - ./logs/:/opt/logs         
     networks:
       - devopsnetwork


 networks:
   devopsnetwork:
     external: true
 ```

部署成功

部署機(jī)器IP:192.168.123.214

723a4884-a8a7-11ee-8b88-92fbcf53809c.jpg

72452a7e-a8a7-11ee-8b88-92fbcf53809c.jpg

使用 K8S 安裝

跟著官方文檔一步步來即可,helm 的文件可以從apolloconfig/apollo-helm-chart獲取,這里只分享下步驟和些注意的地方

初始化數(shù)據(jù)庫

可以使用已有或者部署 mysql 服務(wù),并創(chuàng)建 apollo 專門的賬號(hào)密碼

執(zhí)行 Apollo 對(duì)應(yīng)版本的v2.1 默認(rèn)初始化腳本創(chuàng)建 ApolloConfigDB,ApolloPortalDB

生產(chǎn)環(huán)境 記得修改 ServerConfig 表的 環(huán)境和組織apollo.portal.envs:proorganizations:[{"orgId":"xxx","orgName":"xxx公司"}]

使用 helm 添加 apollo repo

安裝 apollo-service

安裝 apollo-portal

k8s 使用

可以將 Apollo 相關(guān)配置存儲(chǔ)到 k8s 的ConfigMap中方便 k8s 服務(wù)中使用

使用

.NET SDK

官方:Com.Ctrip.Framework.Apollo.Configuration

添加包:Com.Ctrip.Framework.Apollo.Configuration

appsetting.json 中添加 apollo 配置

MetaServer:Apollo 服務(wù)地址,系統(tǒng)信息中也可以查看到

AppId:應(yīng)用 Id

Namespaces:命名空間默認(rèn)是 application

獲取參數(shù)注冊(cè):可以是配置,也可以是從環(huán)境變量中

builder.Configuration.AddApollo(builder.Configuration.GetSection("apollo"));

注入IConfiguration使用即可

連接配置


  "apollo": {
    "MetaServer": "http://192.168.123.214:8080",
    "AppId": "devops.test",
    "Namespaces": [ "application" ]
  }

72572bf2-a8a7-11ee-8b88-92fbcf53809c.jpg

726a653c-a8a7-11ee-8b88-92fbcf53809c.jpg

Demo 示例

dotnet v7.0


var builder = WebApplication.CreateBuilder(args)
builder.Configuration.AddApollo(builder.Configuration.GetSection("apollo"))
app.MapGet("/config", context =>
{
    context.Response.Headers["Content-Type"] = "text/html
    //配置服務(wù)
    var configService = context.RequestServices.GetRequiredService()
    string? key = context.Request.Query["key"]
    if (string.IsNullOrWhiteSpace(key))
    {
        return context.Response.WriteAsync("獲取配置:/config?key=test");
    }
    var value = configService[key];
    return context.Response.WriteAsync(value ?? "undefined");
});

完整 Demo 示例 :Github 地址

踩過的坑

數(shù)據(jù)庫配置連接,使用服務(wù)名,而不是容器名

-Deureka.instance.homePageUrl 和 -Deureka.service.url 參數(shù)一開始沒有理解到是做什么的,只知道配置健康檢查失敗,看了文檔才理解到是 Deureka.instance.homePageUrl 是注冊(cè)的服務(wù)地址,-Deureka.service.url 是注冊(cè)中心的接口地址

后語

時(shí)間充裕的情況最好是過一遍文檔,知道是怎么設(shè)計(jì)的,遇到問題真會(huì)一頭霧水。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85324
  • SDK
    SDK
    +關(guān)注

    關(guān)注

    3

    文章

    1035

    瀏覽量

    45899
  • Apollo
    +關(guān)注

    關(guān)注

    5

    文章

    342

    瀏覽量

    18443

原文標(biāo)題:Apollo 配置中心的部署與使用經(jīng)驗(yàn)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【飛騰派4G版免費(fèi)試用】3.JITSI視頻會(huì)議想開就開

    ,jvb,jigasi,jibri} JITSI,啟動(dòng) docker-compose up -d 打開瀏覽器訪問 https://localhost:8443 ,到這就說明安裝成功了。
    發(fā)表于 12-25 18:44

    【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】為 Ubuntu 安裝 Docker 及常用軟件

    docker sudo apt install docker.io 安裝 docker-compose sudo apt-get install
    發(fā)表于 02-21 17:54

    基于DOCKER容器的ELK日志收集系統(tǒng)分析

    工具docker-compose,一鍵式構(gòu)建基于Docker容器的ELK日志收集系統(tǒng)的實(shí)驗(yàn)環(huán)境,證明了本系統(tǒng)收
    發(fā)表于 11-06 14:15 ?3次下載
    基于<b class='flag-5'>DOCKER</b>容器的ELK日志收集系統(tǒng)分析

    云計(jì)算核心技術(shù)Docker教程:Docker Compose的pull和push命令詳解

    Docker-Compose pull命令可以拉取docker-compose.yml或者docker-stack.yml文件中定義的服務(wù)關(guān)聯(lián)的鏡像,Docker-Compose pu
    的頭像 發(fā)表于 11-17 18:22 ?9199次閱讀

    云計(jì)算核心技術(shù)DockerCompose中的環(huán)境變量

    :${TAG}” 如果您有多個(gè)環(huán)境變量,則可以通過提供環(huán)境變量文件的路徑來替換它們。默認(rèn)情況下,該docker-compose 命令將.env在您運(yùn)行該命令的目錄中查找一個(gè)名為的文件。通過將文件作為參數(shù),你
    的頭像 發(fā)表于 02-16 09:58 ?3716次閱讀

    docker compose一鍵打包部署項(xiàng)目的實(shí)踐

    【導(dǎo)讀】本文介紹了 docker compose 一鍵打包部署項(xiàng)目的實(shí)踐。
    的頭像 發(fā)表于 08-30 11:03 ?1554次閱讀

    Docker-compose常用的解決方法

    我們常常見到很多比較棒的開源項(xiàng)目,但在本地安裝運(yùn)行的話就會(huì)很復(fù)雜,要配置不同的環(huán)境,安裝不同的依賴,好一點(diǎn)的會(huì)用docker直接拉取,或者打包好。
    的頭像 發(fā)表于 09-05 15:22 ?1513次閱讀

    使用podman-compose部署wordpress的示例

    我們對(duì)于docker-compose并不陌生,它是一個(gè)用于編排多個(gè)可能相互依賴的容器的工具。
    的頭像 發(fā)表于 10-17 10:59 ?2717次閱讀

    SpringBoot接入輕量級(jí)分布式日志框架GrayLog

    老樣子,直接上docker-compose,如果一直跟著我的步伐,應(yīng)該對(duì)著不陌生了。docker-compose.yml 的內(nèi)容其實(shí)我也是抄官網(wǎng)的,這里還是貼下吧(就不用你們翻了)
    的頭像 發(fā)表于 10-27 10:29 ?1072次閱讀

    Linux中如何使用Docker安裝MySQL

    如果您是 MySQL 的新手或希望快速輕松地安裝 MySQL 數(shù)據(jù)庫的人,那么本文適合您,在本文中,我們將學(xué)習(xí)如何在 Linux 中使用 DockerDocker compose
    的頭像 發(fā)表于 05-12 16:22 ?3647次閱讀
    Linux中如何使用<b class='flag-5'>Docker</b><b class='flag-5'>安裝</b>MySQL

    使用Docker安裝WordPress教程

    本教程將向您展示如何使用 Docker ComposeDocker 容器中運(yùn)行 WordPress 安裝
    的頭像 發(fā)表于 07-28 11:39 ?1535次閱讀
    使用<b class='flag-5'>Docker</b><b class='flag-5'>安裝</b>WordPress教程

    linux docker安裝部署

    了解如何在Linux上安裝部署Docker。 一、安裝Docker 在開始之前,請(qǐng)確保您的Linux系統(tǒng)滿足以下要求: 64位版本的Lin
    的頭像 發(fā)表于 11-23 09:27 ?1124次閱讀

    如何利用樹莓派安裝DockerDocker-compose呢?

    本文主要演示了樹莓派如何安裝DockerDocker-compose的過程。
    的頭像 發(fā)表于 12-14 16:19 ?2875次閱讀
    如何利用樹莓派<b class='flag-5'>安裝</b><b class='flag-5'>Docker</b>和<b class='flag-5'>Docker-compose</b>呢?

    寶塔面板Docker一鍵安裝部署GPTAcademic,開發(fā)私有GPT學(xué)術(shù)優(yōu)化工具

    使用寶塔Docker-compose,5分鐘內(nèi)在海外服務(wù)器上搭建gpt_academic。這篇文章講解如何使用寶塔面板的Docker服務(wù)搭建GPT 學(xué)術(shù)優(yōu)化 (GPT Academic)。 ? 在
    的頭像 發(fā)表于 07-02 11:58 ?2561次閱讀
    寶塔面板<b class='flag-5'>Docker</b>一鍵<b class='flag-5'>安裝</b>:<b class='flag-5'>部署</b>GPTAcademic,開發(fā)私有GPT學(xué)術(shù)優(yōu)化工具

    docker-compose配置文件內(nèi)容詳解以及常用命令介紹

    。 使用 docker-compose.yml 定義構(gòu)成應(yīng)用程序的服務(wù),這樣它們可以在隔離環(huán)境中一起運(yùn)行。 最后,執(zhí)行 docker-compose up 命令來啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。 二、docker-compose
    的頭像 發(fā)表于 12-02 09:29 ?229次閱讀
    <b class='flag-5'>docker-compose</b>配置文件內(nèi)容詳解以及常用命令介紹
    主站蜘蛛池模板: 久草网国产自偷拍| GOGOGO高清免费播放| 麻豆国产自制在线观看| 97久久伊人精品影院| 欧美人成在线观看ccc36| 超级乱淫片午夜电影网99| 神马影院在线eecss伦理片| 国产色婷婷亚洲99麻豆| 亚洲一区电影在线观看| 鲁一鲁亚洲无线码| 爱情岛论坛免费在线观看| 日韩精品AV一区二区三区| 国产精品99re6热在线播放| 亚洲精品AV一区午夜福利| 久久精品视在线观看2| 99久久国产综合精品| 十分钟免费视频大全在线观看 | 校花在公车上被内射好舒| 黄色软件视频app| 51国产午夜精品免费视频| 日本免费一区二区三区四区五六区| 国产成人一区免费观看| 一个人的视频全免费在线观看www| 蜜桃色欲AV久久无码精品| 俄罗斯aaaa一级毛片| 亚洲精品久久久午夜麻豆| 米奇影视999| 国产 日韩 欧美 综合 激情| 亚洲人成影院在线播放| 蜜桃传媒在线观看入口| 高H黄暴NP辣H一女多男| 亚洲视频91| 秋霞久久久久久一区二区| 国内极度色诱视频网站| 99re在线播放| 先锋影音av无码第1页| 狼人射综合| 高hh乱亲女真实| 中文字幕亚洲视频| 色四房播播| 久久永久免费视频|