栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker安装Apollo

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker安装Apollo


说明: apollo官网已经说明的很清楚 在这里记录仅为了记录 方便日后回顾

什么是Apollo

Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

Apollo支持4个维度管理Key-Value格式的配置:

application (应用)
environment (环境)
cluster (集群)
namespace (命名空间)

同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo

Apollo的特点
  1. 统一管理不同环境,不同集群的配置
  2. 配置实时更新
  3. 版本发布
  4. 灰度发布
  5. 权限管理
Apollo的核心
  1. application 应用
  2. environment 环境
  3. cluster 集群
  4. namespace 命名空间
Apollo为什么采用Eureka
  1. Eureka是业界比较成熟的工具 并且是开源的 方便排查问题
  2. 由于携程本身主要使用Java的SpringCloud和Boot 所以和Eureka集成更方便
使用Docker安装Apollo
  • 安装Java jdk 1.8

    • 地址:https://www.java.com/zh-CN/download/
  • 查找dockerhub中mysql镜像

    • docker search mysql
  • 拉取docker的mysql镜像

    • docker pull mysql:5.7
  • 运行mysql镜像

    • docker run -d -p 13306:3306 --privileged=true -v /mnt/mysql/conf/mysql.conf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /mnt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
    • run run 是运行一个容器
      -d  表示后台运行
      -p  表示容器内部端口和服务器端口映射关联
      –privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
      -v /docker/mysql/conf/my.cnf:/etc/my.cnf 将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
      -v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
      -e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
      –name mysql     设值容器名称为mysql
      mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
      –character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码

  • 进入mysql容器

    • docker exec -it 1de812984103 bash
    • 1de812984103 容器id
      exec 在运行的容器中执行命令
      -it 以交互模式执行
      bash 脚本类型

  • 连接mysql

    • mysql -u root -p

    • 在这里我们直接使用连接时指定的密码进行登录即可 后面如果要更改密码 可参考mysql命令文档进行操作

  • 导入apollo系统数据

    • 直接使用apollo内部提供好的sql文件进行导入即可
      • apolloportaldb.sql
      • apolloconfigdb.sql
      • 在这里笔者直接使用mysql workbench工具进行导入了
  • 下载apollo服务镜像

    • dockerhub地址
    • docker pull apolloconfig/apollo-portal:latest
      docker pull apolloconfig/apollo-adminservice:latest
      docker pull apolloconfig/apollo-configservice:latest

    • apollo-adminservice //Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
      apollo-configservice //Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
      apollo-portal //Portal通过域名访问meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试

  • 运行镜像

    • 在这里为了避免和其他服务端口冲突 所以使用8081 8091 8071来对应容器端口

    • Apollo Config Service

      • docker run -p 8081:8080 -e SPRING_DATASOURCE_URL="jdbc:mysql://localhost:13306/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v /tmp/logs:/opt/logs --name apollo-configservice apolloconfig/apollo-configservice
    • Apollo Admin Service

      • docker run -p 8091:8090 -e SPRING_DATASOURCE_URL="jdbc:mysql://localhost:13306/ApolloConfigDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -d -v /tmp/logs:/opt/logs --name apollo-adminservice apolloconfig/apollo-adminservice
    • Apollo Portal

      • docker run -p 8071:8070 -e SPRING_DATASOURCE_URL="jdbc:mysql://localhost:13306/ApolloPortalDB?characterEncoding=utf8" -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=123456 -e APOLLO_PORTAL_ENVS=pro -e PRO_meta=http://localhost:8081 -d -v /tmp/logs:/opt/logs --name apollo-portal apolloconfig/apollo-portal
    • 参数说明

      • SPRING_DATASOURCE_URL: 对应环境ApolloConfigDB的地址
        SPRING_DATASOURCE_USERNAME: 对应环境ApolloConfigDB的用户名
        SPRING_DATASOURCE_PASSWORD: 对应环境ApolloConfigDB的密码
        APOLLO_PORTAL_ENVS(可选): 对应ApolloPortalDB中的apollo.portal.envs配置项,如果没有在数据库中配置的话,可以通过此环境参数配置
        DEV_meta/PRO_meta(可选): 配置对应环境的meta Service地址,以${ENV}_meta命名,需要注意的是如果配置了ApolloPortalDB中的apollo.portal.meta.servers配置,则以apollo.portal.meta.servers中的配置为准

  • 运行结果

  • 访问

  • apollo登录默认用户名和密码 apollo admin

  • 添加用户

  • 添加部门

    • key: organizations
      value: [{“orgId”:“测试部门”,“orgName”:“测试部门”}]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/274686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号