一、环境准备

操作系统:CentOS release 7.5 (启动脚本理论上支持所有Linux发行版,建议CentOS 7)
JDK :jdk1..0_162 (建议安装Java 1.8+)
MySQL:5.7.26 (Apollo的表结构对timestamp使用了多个default声明,所以需要5..5以上版本) 架构:(官方默认支持DEV(开发环境)、FAT(功能测试)、UAT(回归测试)、PRO(生产环境),由于机器有限,只部署Dev,Pro)
Portal service: 172.16.150.131
Dev config&& admin 172.16.150.132
Pro config && admin 172.16.150.133
#自定义环境参考:https://github.com/ctripcorp/apollo/wiki/%E9%83%A8%E7%BD%B2&%E5%BC%80%E5%8F%91%E9%81%87%E5%88%B0%E7%9A%84%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98#42-%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E7%8E%AF%E5%A2%83 关闭防火墙
同步时间 #注意事项:
如果实际部署的机器有多块网卡(如docker),或者存在某些网卡的IP是Apollo客户端和Portal无法访问的(如网络安全限制),那么我们就需要在apollo-configserviceapollo-adminservice中做相关限制以避免Eureka将这些网卡的IP注册到Meta Server。
参考地址: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#14%E7%BD%91%E7%BB%9C%E7%AD%96%E7%95%A5

二、服搭建数据库服务及创建相关库

1.搭建MySQL

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-.noarch.rpm
vim mysql-community.repo #启动5.7,禁用8.0

安装MySQL

yum clean all && yum makecache
yum install mysql-community-server -y

2.优化MySQL配置

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at % of total RAM for dedicated server, else %.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
read_buffer_size =
read_rnd_buffer_size =
sort_buffer_size =
tmp_table_size =
join_buffer_size = slow_query_log =
slow_query_log_file = /var/lib/mysql/slow.log
log_queries_not_using_indexes =
log_slow_admin_statements =
log_slow_slave_statements =
log_throttle_queries_not_using_indexes =
expire_logs_days =
long_query_time =
min_examined_row_limit =
binlog-rows-query-log-events =
log-bin-trust-function-creators =
log-slave-updates = innodb_log_file_size=300M
innodb_page_size =
innodb_buffer_pool_size = 300M
innodb_buffer_pool_instances =
innodb_buffer_pool_load_at_startup =
innodb_buffer_pool_dump_at_shutdown =
innodb_lru_scan_depth =
innodb_lock_wait_timeout =
innodb_io_capacity =
innodb_io_capacity_max =
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_undo_logs =
innodb_flush_neighbors =
innodb_log_buffer_size =
innodb_purge_threads =
innodb_large_prefix =
innodb_thread_concurrency =
innodb_print_all_deadlocks =
innodb_strict_mode =
innodb_sort_buffer_size =
innodb_write_io_threads =
innodb_read_io_threads =
innodb_file_per_table =
innodb_stats_persistent_sample_pages =
innodb_autoinc_lock_mode = # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links= log-error=/var/log/mysqld-error.log
pid-file=/var/run/mysqld/mysqld.pid

my.cnf

启动MySQL服务并设置登录密码

systemctl start mysqld
grep "temporary password" /var/log/
mysqld.log #获取MySQL初始化密码
mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. MySQL Community Server (GPL) #MySQL版本号
...
mysql> show databases;
ERROR (HY000): You must reset your password using ALTER USER statement before executing this statement. #默认第一次登录MySQL需要重新设置root密码,否则报错 mysql> alter user 'root'@'localhost' identified by 'Qgg12#45'; #密码要符合一定的强度,或者修改MySQL密码策略
Query OK, rows affected (0.00 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec) mysql> \q
Bye

#以上操作在三台服务器都需要执行

2.创建Apollo PortalDB数据库(在Portal service:172.16.150.131服务器上操作)

wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/db/migration/portaldb/V1.0.0__initialization.sql  #下载官方提供的SQL文件
mysql -uroot -p
mysql> source /root/V1..0__initialization.sql #手动导入
show databases;
use ApolloPortalDB;
show tables;
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;

3.创建ApolloConfigDB数据库(172.16.150.132、172.16.150.133上部署)

wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/db/migration/configdb/V1.0.0__initialization.sql
source /root/V1..0__initialization.sql
select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit ;

三、安装Apollo服务

1.安装apollo-portal 服务(在Portal service:172.16.150.131服务器上执行)

https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-portal-1.4.0-wget github.zip
unzip apollo-portal-1.4.-github.zip
cd apollo-portal/
cat config/application-github.properties #ApolloPortalDB数据库连接串信息
# DataSource
spring.datasource.url = jdbc:mysql://172.16.150.131:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = xxxx
spring.datasource.password = xxx
cat config/apollo-env.properties #配置apollo-portal的meta service信息
dev.meta=http://172.16.150.132:8080
pro.meta=http://172.16.150.133:8080

修改Apollo-portal启动脚本

[root@localhost ~]# grep "^export JAVA_OPTS"  apollo-portal/scripts/startup.sh  #根据实际情况修改相应的值
export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=8"

2.配置apollo-configservice、apollo-adminservice(172.16.150.132、172.16.150.133上操作)

https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-adminservice-1.4.0-github.zip
https://github.com/ctripcorp/apollo/releases/download/v1.4.0/apollo-configservice-1.4.0-github.zip
unzip apollo-adminservice-1.4.-github.zip
unzip apollo-configservice-1.4.-github.zip
[root@localhost ~]# cat apollo-adminservice/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://172.16.150.132:3306/ApolloConfigDB?characterEncoding=utf8 #注意修改MySQL连接地址
spring.datasource.username = root
spring.datasource.password = xxxx
[root@localhost ~]# cat apollo-configservice/config/application-github.properties #注意修改MySQL连接地址
# DataSource
spring.datasource.url = jdbc:mysql://172.16.150.132:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = xxx

修改apollo-configservice、apollo-adminservice启动脚本

[root@localhost ~]# grep "^export JAVA_OPTS" apollo-configservice/scripts/startup.sh #根据实际情况修改相应的值
export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=8"

[root@localhost ~]# grep "^export JAVA_OPTS" apollo-adminservice/scripts/startup.sh
export JAVA_OPTS="-server -Xms1024m -Xmx1024m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=8"

3.启动服务

#要先启动apollo-configservice再启动apollo-adminservice等所有apollo-configservice和apollo-adminservice启动完成后再启动apollo-portal

scripts/startup.sh     #启动
scripts/shutdown.sh #关闭服务

日志文件查看

apollo-configservice   /opt/logs//   #日志路径启动脚本中可定义路径
apollo-adminservice /opt/logs/
apollo-portal     /opt/logs/

登录Apollo,浏览器访问apollo-portal服务,端口8070,初始用户名是apollo,密码是admin

 

携程 Apollo分布式部署的更多相关文章

  1. 携程apollo分布式配置中心

    原理 : apollo的部署 jdk 要求8以上 mysql 5.7以上 执行build.sh 这样就把configService,adminService 打包到对应的target下面 把这个放到l ...

  2. 分布式配置中心 携程(apollo)

    1.传统配置文件与分布式配置文件区别 传统配置文件:如果修改了配置文件,需要重新打包发布,重新发布服务,而且每个环境的变更配置文件,比较繁琐. 分布式配置文件:将配置文件注册到配置中心上去,可以使用分 ...

  3. 携程apollo系列-客户端集成

    本文讲解如何在 Java 程序中集成 Apollo 配置, 主要涉及到一些基础用法. 对于一些高级用法, 比如如何加密/解密配置项 (可用于数据库密码配置), 如何动态切换数据源地址,如何动态切换日志 ...

  4. 携程apollo系列-个人开发环境搭建

    本博客讲详细讲解如何在 Windows 搭建携程 Apollo 服务器 (用户个人开发). 开发服务器有多种搭建方式:(1) docker, 搭建过程非常简单, 推荐有 docker 环境(2) 部署 ...

  5. .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  6. CentOS 7 搭建基于携程Apollo(阿波罗)配置中心单机模式

    Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性.服务端基于Spring Boot ...

  7. 携程Apollo配置中心架构深度剖析

    转自:http://www.uml.org.cn/wfw/201808153.asp 一.介绍 Apollo(阿波罗)[参考附录]是携程框架部研发并开源的一款生产级的配置中心产品,它能够集中管理应用在 ...

  8. Spring Boot 2.0 整合携程Apollo配置中心

    原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...

  9. 携程Apollo统一配置中心的搭建和使用

    原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...

随机推荐

  1. Docker install in Linux

    install command sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-man ...

  2. spark2.4.2 源码编译

    基于Maven的构建是Apache Spark的参考构建.使用Maven构建Spark需要Maven 3.5.4和Java 8.请注意,从Spark 2.2.0开始,对Java 7的支持已被删除. 包 ...

  3. SQL注入:Cookie注入

    什么是Cookie Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,就表示你可以无需密码直接登陆管理员账号. Cookie注入的原理 在动态 ...

  4. supervisor 管理应用程序

    supervisor 进程管理 主要包含后台进程 supervisord 和控制台 supervisorctl 两个程序 supervisor # 官方文档 http://www.supervisor ...

  5. python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

  6. 07webpack--下载对应的css模块

    <!--本节 loader配置处理css样式 在src下新建css文件夹 在css下创建index.css 在main.js这个入口文件中 引入js模块 和 css杨思表是不同的 在main.j ...

  7. appium自动化常用API

    常用函数 一.获得信息类API (1)获取当前页面的activity名,比如: (.ui.login.ViewPage)  current_activity() 比如我们需要实现这个登录的功能时,主要 ...

  8. CentOS最小化安装后找不到ifconfig命令

    1.ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息, 可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等命令, 这时候你进入终端,运 ...

  9. 201871010123-吴丽丽《面向对象程序设计(Java)》第十一周学习总结

    201871010123-吴丽丽<面向对象程序设计(Java)>第十一周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  10. 【Spring AOP】通知(五)

    一.通知介绍 1. 前置通知(Before) 在目标方法执行之前执行的通知. 前置通知方法,可以没有参数,也可以额外接收一个JoinPoint,Spring会自动将该对象传入,代表当前的连接点,通过该 ...