Apollo本地快速部署

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Apollo本地快速部署

原文链接

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 命令,

运行:

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;

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

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

点击创建应用:

输入自定义的参数:

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

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 中新增并发布如下三个参数:

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

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

代码的路

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Java 数据安全/隐私保护 Spring
新一代开源配置中心 - Apollo
Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。
27283 0
|
Java 关系型数据库 MySQL
分布式系列教程(18) -分布式配置中心Apollo安装与详解
分布式系列教程(18) -分布式配置中心Apollo安装与详解
548 0
|
6月前
|
Kubernetes Cloud Native Devops
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
云原生技术落地实现之二KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (2/2)
154 1
|
6月前
|
Kubernetes Devops Java
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
119 0
云原生技术落地实现之一KubeSphere DevOps 系统在 Kubernetes 集群上实现springboot项目的自动部署和管理 CI/CD (1/2)
|
Kubernetes Cloud Native Docker
Docker与Kubernetes集成以实现云原生应用程序:云原生在线教育平台
当将Docker与Kubernetes集成以实现云原生应用程序时,可以采用以下项目案例来详细解释:
150 0
|
自然语言处理 负载均衡 Java
【Apollo】(2)--- Apollo架构设计
【Apollo】(2)--- Apollo架构设计
248 0
|
存储 Kubernetes Docker
【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“
【排坑指南之kubeSphere】2022年最新版-”kubeSphere3.2.1 Paas容器云平台“使用DevOps-CICD之”排坑指南“
136 0
|
存储 消息中间件 Kubernetes
10分钟在 Rainbond 上部署 mall 电商项目
本文介绍在 Rainbond 上的两种部署 mall 电商项目的方式: 1. 通过 Rainbond 开源应用商店快速部署 mall 2. 从 0 开始部署 mall 项目所有服务
|
Kubernetes IDE 前端开发
使用 Nocalhost 与 KubeVela 端云联调,一键完成多集群混合云环境部署
在云原生快速发展的当下,如何让云的技术赋能业务开发?在上线应用时,如何让云的开发者在现代化的多集群、混合云环境中便捷地进行应用的开发和调试?在部署过程中,又该如何让应用部署具备充分的验证和可靠性? 这些至关重要的问题,都是我们急需解决的。 在本文中,我们将结合 KubeVela 以及 Nocalhost 开源项目,给出一个基于 Kubernetes 和容器生态的端云联调、一键完成多集群混合环境部署的解决方案,来回答上述问题。
402 2
使用 Nocalhost 与 KubeVela 端云联调,一键完成多集群混合云环境部署
|
存储 Kubernetes 监控
开源云原生平台对比 KubeSphere vs Rainbond
最近因为工作需要,需要找一个功能完善的云原生应用平台,经过自己筛选和朋友推荐,剩下 KubeSphere和Rainbond ,这两个产品都是基于 Kubernetes 之上构建的云原生应用平台,功能都非常强大,但产品定位和功能侧重不同,本文将介绍我在选型过程中从各维度对比两款产品的过程记录。
下一篇
无影云桌面