首页 > 其他分享 >分布式部署 apollo

分布式部署 apollo

时间:2023-05-06 15:10:49浏览次数:49  
标签:adminservice github 部署 configservice portal apollo 数据库 分布式


一台服务器 部署多环境的 apollo

以windows环境为例,linux环境类似部署方式

前置条件 java环境、MySQL、gitBash、eureka注册中心

apollo官网 https://www.apolloconfig.com/



一、下载安装包、数据库sql

下载地址:https://github.com/apolloconfig/apollo/releases

1.1 下载安装包

三个安装包
apollo-configservice-x.x.x-github.zipapollo-adminservice-x.x.x-github.zipapollo-portal-x.x.x-github.zip

1.2 下载数据库sql

下载source code的压缩包,解压后,目录apollo-x.x.x\scripts\sql
apolloportaldb.sqlapolloconfigdb.sql

特别注意,如果已经安装过apollo,直接执行会删除之前的数据

下载同一个releases的三个安装包和source code的压缩包, 才能保证安装包和sql版本一致。



二、分布式环境

服务器A, 部署apollo-portal服务,此服务为总控制服务 ip: 192.168.88.10

服务器B, DEV开发环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.11

服务器C, FAT测试环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.12

服务器D, PRO生产环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.13

DEV、FAT、PRO,需要将服务(configservice, adminservice)和数据库配置,分别独立部署三份

服务默认端口
apollo-portal:8070 apollo-configservice:8080 apollo-adminservice: 8090



三、部署apollo-portal服务

apollo-portal部署一份服务即可,将apollo-portal-x.x.x-github.zip上传值服务器,解压

3.1 执行数据库脚本

apolloportaldb.sql

3.2 添加环境

打开ApolloPortalDB.serverconfig
apollo.portal.envs的value默认是dev,表示默认只有开发环境

修改为(不区分大小写) : dev,FAT,PRO 表示开启三个环境

3.3 添加meta.servers

打开ApolloPortalDB.serverconfig
找到key为apollo.portal.meta.servers的value默认是{},

说明:数据库中的apollo.portal.meta.servers的值和配置文件apollo-portal-x-github\config\apollo-env.properties的值, 是同一内容,只是数据库的优先级更高。

将配置文件apollo-portal-x-github\config\apollo-env.properties中默认的local.meta、dev.meta、fat.meta、… pro.meta 全部注释掉即可

修改数据库中的配置 apollo.portal.meta.servers 的value为: {"DEV":"http://192.168.88.11:8080", "FAT":"http://192.168.88.12:8080", "PRO":"http://192.168.88.13:8080"}

3.4 修改数据库地址

打开目录config/application-github.properties文件

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456

3.5 启动或者停止服务

portal服务目录下有scripts\startup.shscripts\shutdown.sh
如果如果已经安装了gitbash, 直接双击startup.sh即可启动。
启动可能失败,查看后面章节

说明:如果服务正在运行中, 手动修改了meta.servers 或数据库地址后,需要重启服务



四、DEV开发环境, 部署apollo-configservice 和 apollo-adminservice 服务;

将apollo-configservice-x.x.x-github.zip 和 apollo-adminservice-x.x.x-github.zip上传DEV开发服务器,解压

4.1 执行数据库脚本

apolloconfigdb.sql

4.2 配置eureka

打开ApolloConfigDB.serverconfig
找到key为eureka.service.url的value默认是http://localhost:8080/eureka/

如果使用默认eureka, eureka.service.url的值不需要修改
如果使用其他独立的eureka服务,可以弃用configservice自带的eureka, 直接将eureka.service.url的的value修改为独立的eureka服务url即可

4.3 修改数据库地址

打开configservice、adminservice这2个服务目录,目录都包含了config/application-github.properties文件

configservice、adminservice 这两个服务数据库都是 ApolloConfigDB,都修改成下面

spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456

4.4 启动或者停止服务

configservice、adminservice这2个服务目录下均有scripts\startup.sh 、scripts\shutdown.sh;
如果如果已经安装了gitbash, configservice、adminservice都需要双击startup.sh启动
.启动可能失败,查看后面章节

说明:如果服务正在运行中, 手动修改了eureka.service.url 或数据库地址后,需要重启服务



五、FAT测试环境, 部署apollo-configservice 和 apollo-adminservice 服务;

分布式部署时,每种环境配置都是独立的, 只需要重复相同上面 四步骤 即可;

说明: 配置都是独立的,包含每种环境DEV、FAT、PRO、 数据库的db, 连接数据库配置,都是完全独立的,
apollo-configservice 和 apollo-adminservice 服务也是每种环境独立启动



六、PRO生产开发环境, 部署apollo-configservice 和 apollo-adminservice 服务;

重复相同上面 四步骤 即可;



七、访问管理端页面

访问apollo-portal服务,默认端口是8070:
http://192.168.88.10:8070/ 默认登录账号:apollo 默认密码:admin

登录成功后,右上角的菜单按钮,有系统信息按钮,查看健康检查是否都正常即可



八、startup.sh启动异常,修改日志目录 mkdir: cannot create directory ‘/opt’: Permission denied

每次执行startup.sh 可能出现没有权限,创建异常

mkdir: cannot create directory ‘/opt’: Permission denied

由于能力有限,这个创建异常未能解决,所以先重新指定日志文件路径,打开编辑scripts/startup.sh
分别修改为:
apollo-portal: LOG_DIR=D:/apollo/portal/log
apollo-configservice: LOG_DIR=D:/apollo/configservice/log
apollo-adminservice: LOG_DIR=D:/apollo/adminservice/log

无异常直接忽略此步骤



标签:adminservice,github,部署,configservice,portal,apollo,数据库,分布式
From: https://blog.51cto.com/u_16082658/6249892

相关文章

  • redis分布式锁、介绍、具体实现,调用、原理、使用场景
    一、作用redis分布式锁:可以分为两点:1.分布式2.加锁主要作用是,在多副本部署服务的情况下(或者高并发时),相同时间点内,对业务代码进行加锁,业务代码只能被一个线程执行用了分布式锁,相当于强制将多副本(或者单副本高并发时)并行改成串行执行,其他副本直接返回或者阻塞等待(排队执行)由于是......
  • 使用gunicorn和supervisor部署flask项目
    我们自己编写的发布系统基于Python3.6开发,项目存放在自建gitlab上,地址为ssh://gitlab.xxxx/xxx/xxx.git这里先简单说下gitlab的3中发布方式:HTTP协议是最常用的方式,因为它简单易用,拉取只需要输入账号密码,但相对较慢且安全性较低。SSH协议则更加安全和方便,拉取代码速度更快,适合在......
  • hadoop 3.3.5伪分布式集群部署
    hadoop包下载https://archive.apache.org/dist/hadoop/common/安装好jdk并配置环境变量下载hadoop压缩包并放至/data/hadoop目录解压tar-zxvfhadoop-3.3.5.tar.gz1配置1.1在Hadoop安装目录下进入到etc/hadoop目录,修改Hadoop相关配置文件。<property><name>f......
  • 分布式一致性协议综述(下)
    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!作者:大能老师|慕课网讲师 前情回顾:分布式一致性协议综述(上),需要回看请点击阅读Raft协议Paxos是论证了一致性协议的可行性,但是论证的过程据说晦涩难懂,缺少必要的实现细节,而且工程实现难度比较高广为人知实......
  • GPT4free安装部署教程 - 白嫖GPT
    前言为啥之前一直没有更新GPT相关的内容,因为个人觉得如果每次都需要使用付费使用API的话,那这个工具还是很难在个人手上被运用起来,多测试几次关键字和清洗数据,API的费用对个人来说都太高昂了直到GPT4free出现公众号后台回复1002,获取GPT试用网址部署使用直接开始部署吧,别像其他文......
  • 分布式系统唯一ID生成方案汇总
    系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1.数据库自增长序列或字段最常见的方式。利用数据库,全数......
  • 5个强大的Java分布式缓存框架推荐
    本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。1、EhcacheEhcache是一个Java实现的开源分布式缓存框架,EhCache可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取......
  • Redis--分布式中实现Session共享(一)
    上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享"。这篇文章将会介绍如何使用Redis,下一篇在此基础上实现Session。这里特别说明一下,其实没有必要使用Redis来解决Session共享。Asp.net提供了StateServer模......
  • 分布式系统复习
    这啥玩意都没讲的课要考了。。。1.云计算与大数据1.1云计算的3个服务模型IaaS,基础设施即服务PaaS,平台即服务SaaS,软件即服务云计算的3中服务模型之间的关系:IaaS提供虚拟化的硬件资源,支撑PaaS对平台的虚拟化,而PaaS又支撑了SaaS对软件的虚拟化。1.2DIKW体系Data(数据)、Info......
  • 使用kubeadm快速部署k8s集群
    目录使用kubeadm快速部署k8s集群一、环境准备二、kubeadm工具介绍三、实操1、所有节点(基础环境)2、master节点3、node节点(加入)4、查看集群使用kubeadm快速部署k8s集群一、环境准备操作系统CentOS7.x-86_x64硬盘:40G+角色IPmaster192.168.130.10node192.168.130.......