美文网首页Java工具
Apollo本地快速部署

Apollo本地快速部署

作者: 代码的路 | 来源:发表于2023-01-08 17:10 被阅读0次

    GitHub项目地址

    Gitee项目地址

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

    Apollo 与 properties 配置文件的功能相同,都可以设置参数。Apollo 的优点在于,可以实时修改参数的值,而不需要重启项目。

    1 环境准备

    需要 Java 1.8 及以上,MySQL 5.6 及以上的版本。

    MySQL安装配置方式:https://mp.weixin.qq.com/s/ISCjsIpmccVnuvXPkiFLMw

    如果只是本地测试的话,推荐使用 GitHub 上的开源项目 Apollo Quick Start;

    安装包下载地址:https://pan.baidu.com/s/11dYV5x1Qu7svEGaJLShoqQ?pwd=6666

    提取码:6666

    2 SQL 导入

    下载并解压安装包 apollo-quick-start-2.0.1.zip,可以看到目录下有 sql 文件夹,里面有 apolloconfigdb.sql 和 apolloportaldb.sql 两个文件,需要将这两个文件导入 MySQL中。

    打开 win 菜单中的 MySQL 8.0 Command Line Client - Unicode 命令,

    image

    运行:

    source D:\Apollo\apollo-quick-start-2.0.1\sql\apolloconfigdb.sql
    source D:\Apollo\apollo-quick-start-2.0.1\sql\apolloportaldb.sql
    

    D:\Apollo 是我存放 apollo-quick-start-2.0.1 文件夹的路径。

    即可完成导入。

    导入成功后,可以通过执行以下sql语句来验证:

    select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;
    

    有以下输出,表示导入成功。

    image

    3 启动 Apollo

    编辑 apollo-quick-start-2.0.1文件夹下的 demo.sh,修改 ApolloPortalDB 和 ApolloConfigDB 相关的数据库连接配置信息。

    #apollo config db info
    apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
    apollo_config_db_username=root
    apollo_config_db_password=root
    
    # apollo portal db info
    apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
    apollo_portal_db_username=root
    apollo_portal_db_password=root
    

    我的数据库的账号密码均为 root。

    找到 demo.sh 的第72行,将 cd "${0%/*}" 改为当前路径:

    cd D:\\Apollo\\apollo-quick-start-2.0.1\\
    

    打开 win 菜单中的 Git Bash,运行 demo.sh 。

    D:\\Apollo\\apollo-quick-start-2.0.1\\demo.sh start
    

    等待运行一段时间后,当看到如下输出,就说明启动成功了。

    ==== starting service ====
    Service logging file is ./service/apollo-service.log
    Started [10768]
    Waiting for config service startup.......
    Config service started. You may visit http://localhost:8080 for service status now!
    Waiting for admin service startup....
    Admin service started
    ==== starting portal ====
    Portal logging file is ./portal/apollo-portal.log
    Started [10846]
    Waiting for portal startup......
    Portal started. You can visit http://localhost:8070 now!
    

    访问 http://localhost:8070 ,输入用户名 apollo,密码 admin,即可登录。

    停止运行命令:

    D:\\Apollo\\apollo-quick-start-2.0.1\\demo.sh stop
    

    需要注意,apollo 端口号为8070,但在 Java 工程的 properties 中,apollo.meta设置的端口号应为 Eureka 的端口号8080。

    4 使用 Apollo

    点击创建应用:

    image

    输入自定义的参数:

    image

    即可创建成功。然后在新创建的应用中增加配置:

    image

    5 项目实例

    下载一个测试项目 learn-apollo

    GitHub地址:https://github.com/Snowstorm0/learn-apollo

    Gitee地址:https://gitee.com/Snowstorm0/learn-apollo

    在运行项目之前需要修改 resource/application.properties 中 apollo.meta 的值,将 localhost 替换为 apollo 的地址,端口号为 Eureka 的端口号(默认为8080)。

    在 Apollo 中新增并发布如下三个参数:

    image

    learn-apollo 是一个定时任务,可以每隔5秒输出一次apollo的参数信息。

    运行该项目,输出:

    paramStr:str1
    

    然后在apollo中修改参数的值,将str1改为str2

    不需要重启项目,此时项目会输出参数更新的日志信息:

    [Apollo-Config-1] c.f.a.s.p.AutoUpdateConfigChangeListener : 
    Auto update apollo changed value successfully, 
    new value: paramStr7, key: param.paramStr, beanName: myService, 
    field: com.spring.boot.service.MyService.paramStr
    

    项目的输出也变了:

    paramStr:str2
    

     
     

    学习更多编程知识,请关注我的公众号:

    代码的路

    相关文章

      网友评论

        本文标题:Apollo本地快速部署

        本文链接:https://www.haomeiwen.com/subject/uevucdtx.html