Docker развертывает Центр конфигурации Apollo

Docker
Docker развертывает Центр конфигурации Apollo

1. Краткое описание Аполлота

      Apollo — это распределенный центр конфигурации, разработанный отделом инфраструктуры Ctrip.Он может централизованно управлять конфигурацией приложений в различных средах и кластерах.После изменения конфигурации его можно передать на сторону приложения в режиме реального времени, и он имеет стандартизированные разрешения, процесс управление и другие функции.Подходит для сценариев управления конфигурацией микросервисов;сервер разработан на основе Spring Boot и Spring Cloud и может запускаться сразу после упаковки без дополнительных контейнеров приложений, таких как Tomcat;клиент Java не зависит ни от каких framework и может работать во всех средах выполнения Java.В то же время он также имеет лучшую поддержку среды Spring/Spring Boot. Может быть хорошей альтернативой Spring Cloud Config

 

2. Инструкции по развертыванию

Apollo можно быстро и легко развернуть с помощью Docker. Во время развертывания Apollo-configservice, Apollo-adminservice и Apollo-portal докеризуются отдельно для улучшения масштабируемости. MySQL не докеризуется.

 

3. Шаги развертывания

3.1.Для работы по инициализации базы данных см. Официальный сайт

3.2. Измените порт портала

由于是在一台机器上进行(伪)分布式部署Apollo,所以需要在修改portal/script/startup.sh中的端口,如果是在不同的机器上部署则可忽略
SERVER_PORT=8080 =>  SERVER_PORT=8070

3.3. Изменить адрес Эврика

adminservice启动时会将自己作为服务注册到configservice注册中心中,默认为http://localhost:/8080/eureka,所以需要将ApolloConfigDB.ServerConfig表中的
eureka.service.url字段修改为:http://apollo-configservice/8080/eureka,这样adminservice启动时就会在configservice容器中进行注册

(apollo-configservice — это имя службы контейнера configservice, когда контейнер организован, и контейнеры в той же сети могут использовать имя службы контейнера для доступа к другим контейнерам)

3.4. Изменить адрес метасервиса

Portal和Apollo Client都需要从Meta Service(即apollo-configservice本身)获取服务地址,然后通过服务地址直接访问,Meta Service地址修改在build.sh,
由dev_meta=http://localhost:8080修改为dev_meta=http://apollo-configservice:8080

3.5. Выполнение компиляции и упаковки

修改完以上配置后,在apollo/script/下执行命令:./build.sh
执行完后将configservice、adminservice、portal的target路径下apollo-xxx-0.9.0-SNAPSHOT-github.zip分别复制到configservice、adminservice、portal的src/main/docker目录,
因为在使用Dockerfile文件制作镜像进需要用这些包

3.6 Написание файла docker-compose.yml

Используйте Docker compose для определения и запуска нескольких контейнерных приложений Docker, поэтому используйте Docker compose для организации служб для configservice, adminservice и портала.

version: "3"

services:
  apollo-configservice:                                         ##容器服务名
    container_name: apollo-configservice                        ##容器名
    build: apollo-configservice/src/main/docker/                ##Dockerfile路径
    image: apollo-configservice:0.9.0                           ##镜像名
    ports:
      - "8080:8080"    
    volumes:
      - "/Users/mobin/opt/logs/100003171:/opt/logs/100003171"    ##将/opt/logs/100003171目录挂载到宿主机的/Users/mobin/opt/logs/100003171方便在宿主机上查看日志
    environment:
      - spring_datasource_url=jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=xxx
      - spring_datasource_password=xxx

  apollo-adminservice:
    container_name: apollo-adminservice
    build: apollo-adminservice/src/main/docker/
    image: apollo-adminservice:0.9.0
    ports:
      - "8090:8090"
    depends_on:
      - apollo-configservice
    volumes:
      - "/Users/mobin/opt/logs/100003172:/opt/logs/100003172"
    environment:
      - spring_datasource_url=jdbc:mysql://xxx:3306/ApolloConfigDB?characterEncoding=utf8
      - spring_datasource_username=xxx
      - spring_datasource_password=xxx

  apollo-portal:
    container_name: apollo-portal
    build: apollo-portal/src/main/docker/
    image: apollo-portal:0.9.0
    ports:
      - "8070:8070"
    depends_on:
      - apollo-adminservice
    volumes:
      - "/Users/mobin/opt/logs/100003173:/opt/logs/100003173"
    environment:
      - spring_datasource_url=jdbc:mysql://xxx:3306/ApolloPortalDB?characterEncoding=utf8
      - spring_datasource_username=xxx
      - spring_datasource_password=xxx

Выполнение заказа:docker-compose up -d

Затем посетите localhost:8080 и localhost:8070.

 

Уведомление:

1. Если это в среде Mac, путь монтирования томов хоста должен быть /Users/username/xxx, а не /xxx.Если вышеуказанное значение томов изменится на следующее, будет сообщено об ошибке

volumes: - "/opt/logs/100003172:/opt/logs/100003172"

использованная литература

Распределенное развертывание Apollo