• apollo学习2:docker集群部署


    下图是官方给的Apollo架构:

     整体分为四大模块:

    1:configService

      1):服务于Client进行配置获取

    2:adminService

      1):服务于Portal进行配置管理,Portal通过调用AdminService进行配置管理和发布。

    3:client

     1):用户获取到配置数据,和ConfigService保持长连接

    4:portal

      1):配置管理页面:存放用户权限、项目和配置的元数据信息

    所以在部署的时候, 我们需要部署三个服务,configService,adminService,portal

    先初始化数据库:

    导入官网数据库表初始化:
    1):在serviceconfig表添加多环境:apollo.portal.envs,如dev,test,prod

    2):  配置eureka集群地址:eureka.service.url(不指定则注册到config_service服务的8080端口)
    3):users表初始化一条用户名和密码,Authorities初始化,使用官网给的,apollo:admin登录
    4):serviceconfig添加superAdmin,超级管理员指定apollo,登录以后即可修改密码

    其他配置参考官网可选

    部署配置:

    configService配置如下:

    1):指定数据库配置

    2):指定端口8091,默认8080(和默认eureka一样)

    3):EUREKA_INSTANCE指定eureka集群域名:默认本地eureka,即 localhost:8080

    export name=apollo_config
    #拉取apolloconfig docker镜像,version不指定默认是最新版本
    docker pull apolloconfig/apollo-configservice:${version}
    
    DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}'`
    
    #查找是否有正在运行的旧容器,如果有,将其停止并删除
    if [ "$DOCKER_ID" = "" ];then
    echo "Docker ${name} no found"
    else
    echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..."
    docker stop $DOCKER_ID
    docker rm $DOCKER_ID
    fi
    
    docker run -d \
    --network host \
    -e SPRING_DATASOURCE_URL='jdbc:mysql://db' \
    -e SPRING_DATASOURCE_USERNAME='xxx' \
    -e SPRING_DATASOURCE_PASSWORD='xxx' \
    
    -e EUREKA_INSTANCE_HOME_PAGE_URL='https://xxx' \
    
    -e EUREKA_INSTANCE_PREFER_IP_ADDRESS='false' \
    
    -p 8091:8080 \
    --name apollo_config apolloconfig/apollo-configservice

    adminService配置如下:

    1):指定数据库配置(和configService公用同一套数据库)

    2):默认端口即可

    3):EUREKA_INSTANCE指定eureka集群域名:默认本地eureka,即 localhost:8080

    export name=apollo_admin
    
    docker pull apolloconfig/apollo-adminservice
    
    DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}'`
    
    #查找是否有正在运行的旧容器,如果有,将其停止并删除
    if [ "$DOCKER_ID" = "" ];then
      echo "Docker ${name} no found"
    else
      echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..."
      docker stop $DOCKER_ID
      docker rm $DOCKER_ID
    fi
    
    docker run  -d \
    --network host \
    -e SPRING_DATASOURCE_URL='jdbc:mysql://db' \
    -e SPRING_DATASOURCE_USERNAME='xxx' \
    -e SPRING_DATASOURCE_PASSWORD='xxx' \
    --name apollo_admin apolloconfig/apollo-adminservice

    以上,configService和adminService将被部署在同一集群,注册到同一eureka集群

    protal配置如下:

    1):SPRING_DATESOURCE指定变量数据库配置

    2):DEV_META指定环境dev和meta地址,meta地址是apollo-configservice集群地址,默认暴露localhost:8080,调取configService接口获取到adminService服务,然后进行操作

    如需部署多环境,指定 TEST_META即添加test环境

    export name=apollo_portal
    #拉取apolloconfig docker镜像,version不指定默认是最新版本
    docker pull apolloconfig/apollo-protal:${version}
    
    DOCKER_ID=`docker ps -a|grep ${name}|awk -F " " '{print $1}'`
    
    #查找是否有正在运行的旧容器,如果有,将其停止并删除
    if [ "$DOCKER_ID" = "" ];then
      echo "Docker ${name} no found"
    else
      echo "你的Docker镜像 ${name}的ID为:$DOCKER_ID即将被停止..."
      docker stop $DOCKER_ID
      docker rm $DOCKER_ID
    fi
    
    docker run  -d \
    --network host \
    -e SPRING_DATASOURCE_URL='jdbc:mysql://ip:3306/db' \
    -e SPRING_DATASOURCE_USERNAME='xxx' \
    -e SPRING_DATASOURCE_PASSWORD='xxx' \
    -e DEV_META='http://localhost:8080' \
    --name apollo_portal apolloconfig/apollo-portal

    多套测试环境,portal只需要部署一个

  • 相关阅读:
    text-overflow white-space word-break word-wrap word-spacing line-clamp 傻傻分不清楚0.0=>文本超出显示省略号/数字英文字母折行有关css 属性/显示两行,第二行省略号显示css方法
    jq 操作表单中 checkbox 全选 单选
    用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法
    通过form实现enter事件
    小白随笔之数组的方法
    引用类型之Array
    Reset
    js常用事件
    让女朋友能懂的网络技术篇之动态代理
    图论之Dijkstra算法
  • 原文地址:https://www.cnblogs.com/at20191018/p/16092726.html
Copyright © 2020-2023  润新知