目录

一、背景

二、Apollo的环境的搭建(分布式多环境)

三、Java程序的应用(SpringBoot)

四、总结


一、背景

最近在公司需要完成一个技术优化事项:由于SpringCloudConfig在使用上修改配置以后需要进行服务器重启的形式来进行配置变更,流程比较麻烦以及繁琐,所以需要配合运维把手头上负责的项目的配置中心SpringCloudConfig替换成Apollo作为新的注册中心。所以就想认真的学习下Apollo,做好技术储备。

二、Apollo的环境的搭建(分布式多环境)

首先Apollo的文档真的很全,强烈推荐大家直接走官方文档Apollo,也不用去看网上的一些博客,除非遇到搭建不成功的情况下,可以通过别人的博客看看是否有遗漏的地方进行查漏补缺。当然如果你觉得麻烦,不想看文档,可以直接看这篇博客讲我是怎么搭建环境以及使用的。

补充:这里讲的是分布式多环境的部署和运用,如果是QuickStart形式的搭建建议直接看文档,这里不做多的描述

(1)在搭建的过程中还是要基本了解下Apollo的组件,如果想要完整的了解具体组件定义还是需要你去看文档。

  • apollo-adminservice

    • 用于对管理界面提供支持的管理服务。
  • apollo-config-service
    • 分布式配置中心核心,提供配置的更新、客户端推拉功能。
  • apollo-portal-service
    • 管理界面的权限、用户相关服务,拥有自己的数据库。

(1)准备两台机器,我是直接使用ubuntu虚拟机,你也可以用linux。

(2)安装Java JDK, 这是基础,这里不再赘述。

(3)安装数据库MySql,可以使用docker一键安装,这里也不再赘述。

(4)导入DB文件,两个DB文件,一个是configDB,一个portalDB,会自动帮你创建数据库,无需新建一个库再执行SQL文件

apollo-build-scripts/apolloconfigdb.sql at master · apolloconfig/apollo-build-scripts · GitHub

apollo-build-scripts/apolloportaldb.sql at master · apolloconfig/apollo-build-scripts · GitHub

(5)安装apollo-adminservice、apollo-config-service、apollo-portal-service

https://github.com/apolloconfig/apollo/releases,通过下载地址分别下载三个安装包

也可以直接我的项目里面已经压缩好的安装包apollo-all.zip(包含三个服务)

  1. 安装apollo-adminservice

编辑config目录下面的application-github.properties

 

写上你的configDB地址

配置好了以后直接script启动。

2、apollo-config-service

同理,在config目录下面的application-github.properites配置数据库地址,然后启动即可。

3、apollo-portal-service,同样是数据库配置,不过多了apollo-env.properites的配置,配上FAT和DEV的配置

注意如果是多个环境,apollo-adminservice、apollo-config-service 需部署多套。像我就是在两台ubuntu上面分别部署apollo-adminservice和apollo-config-service。

apollo-portal-service因为是管理多套环境的,只需要部署一套就行了。

然后补全dev、fat环境参数,将所有服务启动。访问页面 http://ip地址:8070 即可访问apollo控制台

三、Java程序的应用(SpringBoot)

这里没什么好说的,上jar包

<dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-client</artifactId><version>1.9.2</version></dependency><dependency><groupId>com.ctrip.framework.apollo</groupId><artifactId>apollo-core</artifactId><version>1.9.2</version></dependency>
</dependencies>

加上启动注解

上配置(注意环境区分)

就像使用其他配置中心一样的使用注解@Value即可获取数据

/*** @author chenfoxin* @Description 测试mock数据* @Date 2022/3/19 22:38**/
@RestController
@RequestMapping("/apolloMockController")
public class ApolloMockController {@Value("${spring.demo.apollo:0}")private String value;@GetMapping("/mock")public String mock(){return value;}
}

四、总结

这里只讲述了最基本的Apollo分布式的玩法(两套环境),总体来说搭建环境并不是很难,作为学习的情况下,如果需要了解更详细的apollo还是建议直接看官方文档,讲解的非常的详细。

Apollo

Javademo项目Git地址spring-boot-apollo: SpringBoot应用下的apollo实战

Apollo搭建与实战(分布式部署)相关推荐

  1. Apollo 配置中心:分布式部署

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

  2. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

  3. 分布式部署携程Apollo构建配置中心

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

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

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

  5. apollo 配置中心_apollo-1:apollo配置中心单机模拟分布式部署

    原创:微信公众号:千里行走: 受限图片大小限制,有些图片不是很清晰,可以到微信公众号查看: 1.随着微服务和容器化大行起到,配置中心的重要性越来越高,携程的apollo(几月eureka)是其中的佼佼 ...

  6. apollo(阿波罗) 分布式部署指南

    apollo(阿波罗) 分布式部署指南 一.准备工作 1.1 运行时环境 1.2 MySQL 1.3 环境 1.4 网络策略 二.部署步骤 2.1 创建数据库 2.1.1 创建ApolloPortal ...

  7. Chaos Mesh 实战分享丨通过混沌工程验证 GreatDB 分布式部署模式的稳定性

    Chaos Mesh 最初作为开源分布式数据库 TiDB 的测试平台而创建,是一个多功能混沌工程平台,通过混沌测试验证分布式系统的稳定性.本文以万里安全数据库软件 GreatDB 分布式部署模式为例, ...

  8. Apollo 分布式部署指南

    目录 一.准备工作 1.1 运行时环境 1.1.1 OS 1.1.2 Java 1.2 MySQL 1.3 环境 1.4 网络策略 二.部署步骤 2.1 创建数据库 2.1.1 创建ApolloPor ...

  9. Hadoop全分布式部署 - CentOS(结尾附视频)

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

最新文章

  1. java中注解的使用_java中注解的使用
  2. Kafka基础入门篇
  3. CPU的主频,总线频率和L2缓存对电脑的性能有哪些影响
  4. 实现安卓里边下边播的播放器(源码公开)
  5. python生成器函数(generator),python3学习笔记:生成器generator
  6. [转]转一篇不错的文章:ORM 在电子商务系统中的应用
  7. python 访问网站 json_python爬虫用selenium访问一个网址返回的是个json字符串,怎么获取这个json字符串?...
  8. 回调函数透彻理解Java
  9. c语言怎么写注释,C语言如何注释一段代码?
  10. linux正则表达式大全,正则表达式,正则表达式语法大全
  11. 机器学习入门——加州房价问题
  12. 银行间市场评论员文章词云绘制效果
  13. IDEA导入scala详解
  14. 解决Ubuntu18无法进入-显示/dev/nvme0n1p8:recovering Journal
  15. 数量金融学(7):连续复利
  16. DontDestroyOnLoad带来的麻烦
  17. 主机ip6容器ip6以及应用ip6
  18. wsl Failed to get D-Bus connection: Operation not permitted
  19. 【Axure高保真原型】常用文件图标元件模板
  20. sql server2008处理笛卡儿积的逻辑——记一次解决疑惑

热门文章

  1. html中使用flash做背景
  2. VBA快速合并字符串方法
  3. VUE中使用geetest滑动验证码
  4. 临时关闭selinux模式 setenforce 0
  5. Loadrunner中socket协议十六进制报文参数化方法
  6. vue 拦截器使用
  7. java happens before_Java并发编程之happens-before
  8. python爬取网页唯美图片
  9. Apache-Flink深度解析-TableAPI
  10. 【杂·如何给女友普及计算机二进制,一篇就够了】