基于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脚本导入

源码\scripts\sql下两脚本,到mysql执行

apolloconfigdb.sql

apolloportaldb.sql

编译

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

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

apollo-configservice部署

  1. 源码\apollo-configservice\target\apollo-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. 编辑\scripts\startup.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\target\apollo-adminservice-0.11.0-SNAPSHOT-github.zip
  2. 同上步骤2、3、4、5(注意数据库信息、日志目录对应修改)
  3. localhost:8090尝试

apollo-portal部署

  1. 源码\apollo-portal\target\apollo-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. 编辑\scripts\startup.sh,修改日志目录与端口号

    LOG_DIR=D:/apollo/apollo-portal-0.11.0-SNAPSHOT-github/log
    
    SERVER_PORT=8070
  5. 双击startup.sh启动服务
  6. 输入localhost:8070尝试,如日志没其他异常,等待几分钟再次尝试访问

添加客户端环境配置

在C:\opt\settings 添加文件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出现多台主机名称为部署成功。

结束

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

原文地址:https://www.cnblogs.com/Jeely/p/10789651.html

时间: 2024-10-10 01:37:33

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

携程 Apollo 配置中心传统 .NET 项目集成实践

官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 .NET 客户端做接入的时候就发现了些问题. ctripcorp/apollo - .Net客户端使用指南 ctripcorp/apollo.net - .Net客户端之与 System.Configuration.ConfigurationManager 集成 两个文档关于标识应用身份的AppI

solr 集群(SolrCloud 分布式集群部署步骤)

SolrCloud 分布式集群部署步骤 安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的官网下载. 服务器准备 为搭建这个集群,准备三台服务器,分别为 192.168.0.2 -- master 角色192.168.0.3 -- slave 角色192.168.0.4 -- slave 角色 搭建基础环境 安装 jdk1.7 - 这个大家都会安装

170825、SolrCloud 分布式集群部署步骤

安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的官网下载. 服务器准备 为搭建这个集群,准备三台服务器,分别为 192.168.0.2 -- master 角色192.168.0.3 -- slave 角色192.168.0.4 -- slave 角色 搭建基础环境 安装 jdk1.7 - 这个大家都会安装,就不费键盘了. 配置主机 /etc/h

Spark入门 - 1 搭建Hadoop分布式集群

安装Ubuntu系统 不论是通过虚拟机方式还是直接在物理机上安装Ubuntu系统,网上都有丰富的教程,此处不再赘述. 为了方便起见,此处设置的机器名最好与书本的设置一致:Master.Slave1和Slave2. 配置root用户登录 这里有一步与普通教程不同.在安装好系统,重启之后,完成了相关配置.可以进行这一步,设置使用root用户登录,方便以后多个服务器相互操作.如下所示. 为了简化权限问题,需要以root用户的身份登录使用Ubuntu系统.而在默认情况下,Ubuntu没有开启root用户

Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址-- 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制-- 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

apollo 配置中心的安装与使用

请参考:https://blog.csdn.net/z960339491/article/details/80667559 一.简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景. 官方github:https://github.com/ctripcorp/apollo 作者对Apollo对介绍:https://github.com/ctripco

(一)Apollo配置中心介绍

1.What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限.审核机制…… 在这样的大环境下,传统的通过配置文件.数据库等方式已经越来越无法满足开发人员对配置管理的需求. Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的

基于Hadoop的数据分析综合管理平台之Hadoop、HBase完全分布式集群搭建

能够将热爱的技术应用于实际生活生产中,是做技术人员向往和乐之不疲的事. 现将前期手里面的一个项目做一个大致的总结,与大家一起分享.交流.进步.项目现在正在线上运行,项目名--基于Hadoop的数据分析综合管理平台. 项目流程整体比较清晰,爬取数据(txt文本)-->数据清洗-->文本模型训练-->文本分类-->热点话题发现-->报表"实时"展示,使用到的技术也是当今互联网公司常用的技术:Hadoop.Mahout.HBase.Spring Data Had

基于HBase Hadoop 分布式集群环境下的MapReduce程序开发

HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上运行起来的一些经验教训. 一.首先说一下我的环境: 1,集群的环境配置请见这篇博文. 2,开发客户机环境:操作系统是CentOS6.5,JDK版本是1.7.0-60,开发工具是Eclipse(原始安装是从google的ADT网站下载的ADT专用开发环境,后来加装了Java企业开发的工具,启动Flas