• 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)


    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

     

    前言

    前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候,每一步都踩着坑过来的。因此写文档与需要的朋友分享。

    此篇文章不代表官方部署流程,只是自己的部署的实践方式,屏蔽了一些官方的多余的部署讲解。如果有问题还请到Apollo的wiki文档进行查看:https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97

    另外,真想吐槽下Apollo配置中心部署恶心度真的是……,吐槽归吐槽,但是Apollo配置中心的功能强大而且具有非常高的可用性,在同类型产品里也算是数一数二。

    在进行分布式部署前我还是建议用Apollo的quick start版本进行试用。可以参考我这篇文章《基于winserver部署Apollo初次体验(附.net客户端demo)》

    环境准备

    服务简介

    1. apollo-configservice
      • 作为客户端的获取配置的接口服务,与客户端进行Http long polling,实现配置更新的退送与拉取
    2. apollo-adminservice
      • 作为管理后台的接口服务,提供配置管理、修改、发布
    3. apollo-portal
      • Web管理配置后台

    以下正式开始部署

    SQL脚本导入

    源码scriptssql下两脚本,到mysql执行

    apolloconfigdb.sql

    apolloportaldb.sql

    编译

    切换到上面已下载阿波罗源码scripts目录下,运行build.bat。需要等待几分钟,编译完成后,准备三个服务部署,部署顺序也如下

    1. apollo-configservice
    2. apollo-adminservice
    3. apollo-porta

    apollo-configservice部署

    1. 源码apollo-configservice argetapollo-configservice-0.11.0-SNAPSHOT-github.zip
    2. 解压到需要部署的服务器文件夹
    3. 添加文件application-github.properties,内容如下:
      spring.datasource.url=jdbc:mysql://10.1.20.143:3306/ApolloConfigDB?characterEncoding=utf8
      
      spring.datasource.username=root
      
      spring.datasource.password=12345678
      
    4. 编辑scriptsstartup.sh,修改日志目录
      LOG_DIR=D:/apollo/apollo-configservice-0.11.0-SNAPSHOT-github/log
    5. 双击startup.sh启动服务。
    6. 启动完后查看日志,如果出现下面信息,请耐心等待几分钟,输入localhost:8080尝试
      com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused

    apollo-adminservice部署

    1. 源码apollo-adminservice argetapollo-adminservice-0.11.0-SNAPSHOT-github.zip
    2. 同上步骤2、3、4、5(注意数据库信息、日志目录对应修改)
    3. localhost:8090尝试

    apollo-portal部署

    1. 源码apollo-portal argetapollo-portal-0.11.0-SNAPSHOT-github.zip
    2. 解压到需要部署的服务器文件夹
    3. 添加文件application-github.properties,内容如下(注意数据库连接与前两者不一样)
      spring.datasource.url=jdbc:mysql://10.1.20.143:3306/ApolloPortalDB?characterEncoding=utf8
      
      spring.datasource.username=root
      
      spring.datasource.password=12345678
    4. 编辑scriptsstartup.sh,修改日志目录与端口号
      LOG_DIR=D:/apollo/apollo-portal-0.11.0-SNAPSHOT-github/log
      
      SERVER_PORT=8070
    5. 双击startup.sh启动服务
    6. 输入localhost:8070尝试,如日志没其他异常,等待几分钟再次尝试访问

     

    添加客户端环境配置

    在C:optsettings 添加文件server.properties内容:

    env=DEV

    集群部署

    以上为单机部署的流程,下面讲解集群部署的流程:

    架构简述

    Eureka与apollo-configservice为同一个JVM进程,为了好描述拆开了。

    在apollo-configservice与apollo-adminservice启动时会向Eureka进行服务注册,Apollo客户端和apollo-Portal会从Eureka进行服务查找,然后通过服务地址直接访问

    每个服务都是无状态的,因此横向扩展相对比较简单

    修改eureka.service.url

    update apolloconfigdb.serverconfig set value = 'http://10.1.20.137:8080/eureka/' where id = 1

    部署apollo-configservice和apollo-adminservice

    到B服务器重复上述两个服务的部署步骤(注意基本环境的安装)

    完成并查看

    输入http://10.1.20.137:8080进行查看,eureka管理界面status出现多台主机名称为部署成功。

    结束

    以上为我与大家分享的部署流程,如有问题可以及时在下方评论与我,我会尽快回复


    作  者: 陈珙 
    出  处:http://www.cnblogs.com/skychen1218/ 
    关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教! 
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。 
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力! 

  • 相关阅读:
    超详细的Chrome插件Vimium使用教程!
    Chrome浏览器快捷键详细介绍,让你摆脱鼠标的束缚!
    为什么你的电脑越来越卡?很可能是因为这个!
    像黑客一样用命令打开应用!
    电脑桌面乱?看完这篇文章是不存在这种情况的!
    任务栏简化,让你的任务栏更美观!
    USB无法识别?简单详细的驱动程序安装教程!
    文件扩展名是什么?有什么用?通俗易懂的文件扩展名讲解!
    Win2008 IIS7.5安装配置PHP7.3.2步骤,及500错误解决
    用命令行方式关闭CentOS防火墙
  • 原文地址:https://www.cnblogs.com/Jeely/p/10789651.html
Copyright © 2020-2023  润新知