目录

一、背景

二、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实战

Logo

鸿蒙生态一站式服务平台。

更多推荐