跟燕青学Apollo分布式配置中心-Apollo快速入门
发布日期:2021-05-12 20:28:57 浏览次数:10 分类:精选文章

本文共 2347 字,大约阅读时间需要 7 分钟。

Apollo快速入门

1 Apollo执行流程

Apollo通过配置中心和客户端机制确保应用程序获取最新配置。配置中心会向客户端推送更新,客户端也会定期拉取最新配置。

1.1 修改配置

在Apollo配置中心修改或发布配置后,应用程序会通过以下方式获取最新值:

  • 推送机制:配置中心实时推送给客户端
  • 拉取机制:客户端定期从配置中心获取最新配置

2 安装Apollo

2.1 运行时环境要求

  • Java:1.8+版本
    • Apollo服务端:1.8+
    • Apollo客户端:1.7+
  • MySQL:5.6.5+版本

2.2 下载安装包

访问Apollo的GitHub官方仓库,下载对应版本的安装包。例如,选择1.3.0版本:


2.3 创建数据库

Apollo需要两个数据库:

  • ApolloPortalDB:生产环境只需一个
  • ApolloConfigDB:每个环境都需一套

数据库初始化脚本


2.4 启动Apollo服务

环境准备
  • 确保端口8080、8090、8070未被占用
启动命令
  • ApolloConfigService(默认端口8080)
java -Xms256m -Xmx256m -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring.datasource.username=root -Dspring.datasource.password=pbteach0430 -jar apollo-configservice-1.3.0.jar
  • ApolloAdminService(默认端口8090)
java -Xms256m -Xmx256m -Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 -Dspring datasource.username=root -Dspring.datasource.password=pbteach0430 -jar apollo-adminservice-1.3.0.jar
  • ApolloPortal(默认端口8070)
java -Xms256m -Xmx256m -Ddev_meta=http://localhost:8080/ -Dserver.port=8070 -Dspring datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 -Dspring datasource.username=root -Dspring datasource.password=pbteach0430 -jar apollo-portal-1.3.0.jar

也可使用runApollo.bat命令文件一键启动三服务。


3 代码实现

3.1 发布配置

发布新的配置项

  • 打开项目apollo-quickstart
  • 新建配置项sms.enable
  • 提交并发布

  • 3.2 应用读取配置

  • 新建Maven项目apollo-quickstart
  • 添加Apollo客户端依赖
  • com.ctrip.framework.apollo
    apollo-client
    1.1.0
    1. 编写测试类GetConfigTest
    2. public class GetConfigTest {    public static void main(String[] args) throws InterruptedException {        Config config = ConfigService.getAppConfig();        String someKey = "sms.enable";        String value = config.getProperty(someKey, null);        System.out.println("sms.enable: " + value);    }}
      1. 发布后,运行测试类观察结果

      2. 3.3 修改配置

      3. 修改sms.enablefalse
      4. 再次运行测试类,查看输出

      5. 3.4 热发布

        public class GetConfigTest {    public static void main(String[] args) throws InterruptedException {        Config config = ConfigService.getAppConfig();        String someKey = "sms.enable";        while (true) {            String value = config.getProperty(someKey, null);            System.out.printf("now: %s, sms.enable: %s%n", LocalDateTime.now().toString(), value);            Thread.sleep(3000L);        }    }}
      6. 修改代码为热发布模式
      7. 发布配置后,
      8. 控制台显示值已更新
    上一篇:mybatis-plus教程-AutoGenerator
    下一篇:跟燕青学Nacos系列06-Nacos集群部署

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月11日 17时16分52秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章