基于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)》
环境准备
服务简介
- apollo-configservice
- 作为客户端的获取配置的接口服务,与客户端进行Http long polling,实现配置更新的退送与拉取
- apollo-adminservice
- 作为管理后台的接口服务,提供配置管理、修改、发布
- apollo-portal
- Web管理配置后台
以下正式开始部署
SQL脚本导入
源码\scripts\sql下两脚本,到mysql执行
apolloconfigdb.sql
apolloportaldb.sql
编译
切换到上面已下载阿波罗源码\scripts目录下,运行build.bat。需要等待几分钟,编译完成后,准备三个服务部署,部署顺序也如下
- apollo-configservice
- apollo-adminservice
- apollo-porta
apollo-configservice部署
- 源码\apollo-configservice\target\apollo-configservice-0.11.0-SNAPSHOT-github.zip
- 解压到需要部署的服务器文件夹
- 添加文件application-github.properties,内容如下:
spring.datasource.url=jdbc:mysql://10.1.20.143:3306/ApolloConfigDB?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=12345678
- 编辑\scripts\startup.sh,修改日志目录
LOG_DIR=D:/apollo/apollo-configservice-0.11.0-SNAPSHOT-github/log
- 双击startup.sh启动服务。
- 启动完后查看日志,如果出现下面信息,请耐心等待几分钟,输入localhost:8080尝试
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused
apollo-adminservice部署
- 源码\apollo-adminservice\target\apollo-adminservice-0.11.0-SNAPSHOT-github.zip
- 同上步骤2、3、4、5(注意数据库信息、日志目录对应修改)
- localhost:8090尝试
apollo-portal部署
- 源码\apollo-portal\target\apollo-portal-0.11.0-SNAPSHOT-github.zip
- 解压到需要部署的服务器文件夹
- 添加文件application-github.properties,内容如下(注意数据库连接与前两者不一样)
spring.datasource.url=jdbc:mysql://10.1.20.143:3306/ApolloPortalDB?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=12345678
- 编辑\scripts\startup.sh,修改日志目录与端口号
LOG_DIR=D:/apollo/apollo-portal-0.11.0-SNAPSHOT-github/log SERVER_PORT=8070
- 双击startup.sh启动服务
- 输入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出现多台主机名称为部署成功。
结束
以上为我与大家分享的部署流程,如有问题可以及时在下方评论与我,我会尽快回复
作 者: 陈珙
出 处:http://www.cnblogs.com/skychen1218/
关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!
基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)的更多相关文章
- docker apollo配置中心分布式部署
Apollo 简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服 ...
- 携程 Apollo 配置中心传统 .NET 项目集成实践
官方文档存在的问题 可能由于 Apollo 配置中心的客户端源码一直处于更新中,导致其相关文档有些跟不上节奏,部分文档写的不规范,很容易给做对接的新手朋友造成误导. 比如,我在参考如下两个文档使用传统 ...
- 基于docker 搭建Elasticsearch5.6.4 分布式集群
说明: 准备2台机器,我这里有192. 和 192.168.0.164 192.168.0.164 作为master 192.168.0.107 作为普通node 一.环境 .docker 环境 .E ...
- 基于MongoDB2.6版本配置MongoDB主从复制集群架构
1:集群环境说明:mongodb1:192.168.43.10.mongodb2:192.168.43.11.mongodb3:192.168.43.12.且基于主机名相互通信/etc/hosts文件 ...
- redis配置cluster分布式集群
#下载最新的redis5. wget http://download.redis.io/releases/redis-5.0.3.tar.gz .tar.gz cd redis- make make ...
- Prometheus 通过 consul 分布式集群实现自动服务发现
转载自:https://cloud.tencent.com/developer/article/1611091 1.Consul 介绍 Consul 是基于 GO 语言开发的开源工具,主要面向分布式, ...
- 170825、SolrCloud 分布式集群部署步骤
安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的 ...
- solr 集群(SolrCloud 分布式集群部署步骤)
SolrCloud 分布式集群部署步骤 安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux ...
- SolrCloud 分布式集群部署步骤
https://segmentfault.com/a/1190000000595712 SolrCloud 分布式集群部署步骤 solr solrcloud zookeeper apache-tomc ...
随机推荐
- Java序列化和反序列化,你该知道得更多
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新 ...
- 前端笔记之JavaScript(九)定时器&JSON&同步异步/回调函数&函数节流&call/apply
一.快捷位置和尺寸属性 DOM已经提供给我们计算后的样式,但是还是觉得不方便,因为计算后的样式属性值都是字符串类型. 不能直接参与运算. 所以DOM又提供了一些API:得到的就是number类型的数据 ...
- VSCode入门----设置成中文
将VScode设置成中文. 1.如下图,安装中文插件,点击左边后,输入chinese搜索,然后选择中文件简体进行安装. 2.按住Ctrl+Shift+P,然后输入 configure ,如下图,选择“ ...
- DSAPI多功能组件编程应用-网络相关(上)
[DSAPI.DLL下载地址] DSAPI多功能组件编程应用-网络相关,网络相关编程有很多很多,这里讲解一下封装在DSAPI中的网络相关的功能,这些都是本人简化到极点的功能了,可以在软件开发过程中节 ...
- redis常见错误处理
--1]当内存不足引起 redis出错 先尝试下列语句,指定redis使用内存 redis-server.exe redis.windows.conf --maxheap 200mredis-ser ...
- TCP/IP,Web世界的基本规则
TCP/IP协议 TCP/IP 是因特网的通信协议.通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信.浏览器与服务器就是通过这个协议连接在互联网上的,还有电子邮 ...
- Docker安装nginx
直切正题: 一.安装nginx docker pull nginx 二.启动nginx容器 docker run --name mynginx -d -p : nginx 命令说明: -p 80:80 ...
- MySQL Err(1024):Lock wait timeout exceeded; try restarting transaction
查看事务是否占用被锁: SELECT * FROM information_schema.INNODB_TRX;查看里面的 trx_mysql_thread_id字段 show full proces ...
- mysql修改连接数
方法一: 进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起M ...
- java Calendar的学习分享
前言: 在我们的日常生活中,常常能看见时间.如:在我们的手机里,在一些网站上也能随处看到时间.那我们在项目的开发中,也常常涉及到时间的处理,对于我们经常会遇到和处理的问题.Java中专门为我们处理时间 ...