前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >apollo-1:apollo配置中心单机模拟分布式部署--Step by Step

apollo-1:apollo配置中心单机模拟分布式部署--Step by Step

作者头像
千里行走
发布2019-07-03 17:54:19
6760
发布2019-07-03 17:54:19
举报
文章被收录于专栏:千里行走千里行走

1.随着微服务和容器化大行起到,配置中心的重要性越来越高,携程的apollo(几月eureka)是其中的佼佼者。

2.真实分布式部署类似,只需要部署在多台机器即可。

1.mysql5.7安装(centos7)

vi /etc/yum.repos.d/mysql-community.repo

开启5.7-server的enabled=1,别的版本关掉。

yum install mysql安装

service mysqld start 启动

注意记住临时密码。然后登陆Mysql,修改root密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword123@';

SHOW VARIABLES WHERE Variable_name = 'version'; 查看版本

mysql -uroot -pnewPassword123@

2.导入数据库

有可能地址发生变更,请到master/对应tag下找到对应sql。

https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloconfigdb.sql

https://github.com/ctripcorp/apollo/blob/master/scripts/sql/apolloportaldb.sql

mysql -uroot -pnewPassword123@ < a.sql

3.下载安装包

最新release:https://github.com/ctripcorp/apollo/releases

Apollo v1.0.0 Release

apollo-adminservice-1.0.0-github.zip

41.2 MB

apollo-configservice-1.0.0-github.zip

43.9 MB

apollo-portal-1.0.0-github.zip

32.7 MB

4.单机模拟分布式部署环境部署&拓扑&配置

4.1.apollo-dev机器:

(4.1.a.)config-service配置.

4.1.a.1.apollo-dev-x/apollo-configservice-1.0.0/scripts/startup.sh 配置不一样

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-1/apollo-config-service-dev1-100003171

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-2/apollo-config-service-dev2-100003172

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-3/apollo-config-service-dev3-100003173

/data/coohua/logs/apollo-staging/apollo-staging/apollo-config-service-staging

SERVER_PORT=8080

SERVER_PORT=8081

SERVER_PORT=8082

注释掉:apollo-configservice.conf 中的:

LOG_FOLDER

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-1/apollo-config-service-dev1-100003171

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-2/apollo-config-service-dev2-100003172

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-3/apollo-config-service-dev3-100003173

4.1.a.2.apollo-dev-x/apollo-configservice-1.0.0/config/app.properties 配置不一样

appId=100003171

appId=100003172

appId=100003173

4.1.a.3.apollo-dev-x/apollo-configservice-1.0.0/config/application-github.properties 配置都一样

# DataSource

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = newPassword123@

(4.1.b.)admin-service配置.

4.1.b.1.apollo-dev-1/apollo-adminservice-1.0.0/scripts/startup.sh 配置不一样

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-1/apollo-admin-service-dev1-100004171

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-2/apollo-admin-service-dev2-100004172

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-3/apollo-admin-service-dev3-100004173

SERVER_PORT=8090

SERVER_PORT=8091

SERVER_PORT=8092

注释掉:apollo-adminservice.conf 中的:

LOG_FOLDER

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-1/admin-service-dev1-100004171

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-2/admin-service-dev2-100004172

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-3/admin-service-dev3-100004173

4.1.b.2.apollo-dev-x/apollo-adminservice-1.0.0/config/app.properties 配置不一样

appId=100004171

appId=100004172

appId=100004173

4.1.b.3.apollo-dev-x/apollo-adminservice-1.0.0/config/application-github.properties 配置都一样

# DataSource

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = newPassword123@

(4.1.c.)portal配置.全局所有环境的portal都通过dev的portal操作.

4.1.c.1.apollo-dev-x/apollo-portal-1.0.0/apollo-portal.conf 配置不一样

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-1/apollo-portal-dev1-100005171

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-2/apollo-portal-dev2-100005172

LOG_DIR=/data/coohua/logs/apollo-dev/apollo-dev-3/apollo-portal-dev3-100005173

SERVER_PORT=8070

SERVER_PORT=8071

SERVER_PORT=8072

注释掉:apollo-portal.conf 中的:

LOG_FOLDER

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-1/apollo-portal-dev1-100005171

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-2/apollo-portal-dev2-100005172

mkdir -p /data/coohua/logs/apollo-dev/apollo-dev-3/apollo-portal-dev3-100005173

4.1.c.2.apollo-dev-x/apollo-portal-1.0.0/config/app.properties 配置不一样

appId=100005171

appId=100005172

appId=100005173

4.1.c.3.apollo-dev-x/apollo-portal-1.0.0/config/apollo-env.properties 配置不一样,域名不一样(如果是在同一台机器,则端口不一样)

apollo-dev-1

#local.meta=http://localhost:8080

dev.meta=http://apollo-dev-1:8080

#fat.meta=http://fill-in-fat-meta-server:8080

#uat.meta=http://fill-in-uat-meta-server:8080

#lpt.meta=${lpt_meta}

#pro.meta=http://fill-in-pro-meta-server:8080

4.1.c.4.apollo-dev-x/apollo-portal-1.0.0/config/application-github.properties 配置都一样

# DataSource

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8

spring.datasource.username = root

spring.datasource.password = newPassword123@

5.更改apollo数据库中的配置

5.1.更改ApolloConfigDB.ServerConfig中的eureka地址为集群

apollo-dev-1 apollo-dev-2 apollo-dev-3

eureka.service.url

update ServerConfig set value="http://apollo-dev-1:8080/eureka/,http://apollo-dev-2:8081/eureka/,http://apollo-dev-3:8082/eureka/" where `key`="eureka.service.url"\G

原值:

update ServerConfig set value="http://localhost:8080/eureka/" where `key`="eureka.service.url"\G

5.2.调整ApolloPortalDB配置

配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数页面进行配置。

apollo.portal.envs - 可支持的环境列表

DEV,FAT,UAT,PRO

初始值只有DEV

update ServerConfig set value='DEV,UAT,PRO' where id=1;

6.启动

apollo-dev-1/apollo-configservice-1.0.0/scripts/startup.sh

apollo-dev-1/apollo-adminservice-1.0.0/scripts/startup.sh

apollo-dev-1/apollo-portal-1.0.0/scripts/startup.sh

apollo-dev-2/apollo-configservice-1.0.0/scripts/startup.sh

apollo-dev-2/apollo-adminservice-1.0.0/scripts/startup.sh

apollo-dev-2/apollo-portal-1.0.0/scripts/startup.sh

apollo-dev-3/apollo-configservice-1.0.0/scripts/startup.sh

apollo-dev-3/apollo-adminservice-1.0.0/scripts/startup.sh

apollo-dev-3/apollo-portal-1.0.0/scripts/startup.sh

7.验证

以apollo-dev-1为例:

portal: http://172.31.6.103:8070/

eureka/configservice: http://172.31.6.103:8080/

adminservice: http://172.31.6.103:8090/

8.关闭

apollo-dev-1/apollo-configservice-1.0.0/scripts/shutdown.sh

apollo-dev-1/apollo-adminservice-1.0.0/scripts/shutdown.sh

apollo-dev-1/apollo-portal-1.0.0/scripts/shutdown.sh

apollo-dev-2/apollo-configservice-1.0.0/scripts/shutdown.sh

apollo-dev-2/apollo-adminservice-1.0.0/scripts/shutdown.sh

apollo-dev-2/apollo-portal-1.0.0/scripts/shutdown.sh

apollo-dev-3/apollo-configservice-1.0.0/scripts/shutdown.sh

apollo-dev-3/apollo-adminservice-1.0.0/scripts/shutdown.sh

apollo-dev-3/apollo-portal-1.0.0/scripts/shutdown.sh

9.参考

官方:

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

github地址:

https://github.com/ctripcorp/apollo

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 千里行走 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档