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

二、为什么我要集成apollo?
阿波罗特性:

由于apollo相比spring cloud config等主流配置中心多了可视化管理配置和灰度发布等高级特性,所以打算放弃spring cloud config 改用apollo。
三、部署apollo
1.到github apollo的release页面下载需要的三个zip包。
https://github.com/ctripcorp/apollo/releases

2.安装mysql,然后运行如下两个apollo初始化脚本,初始化两个基本库。
https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloportaldb.sql
https://github.com/nobodyiam/apollo-build-scripts/blob/master/sql/apolloconfigdb.sql
3.将三个zip包上传到服务器并解压,每个zip包解压出来都有一个application-github.properties文件,修改其中的mysql ip地址、端口、用户名、密码信息,指向本地的mysql数据库,然后注意将application-github.properties文件放在jar包同级目录,如下是我的目录结构和application-github.properties文件内容。
[root@localhost apollo]# ls
admin-service config-service protal
[root@localhost admin-service]# ls
apollo-adminservice-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
[root@localhost protal]# ls
apollo-env.properties apollo-portal-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
[root@localhost config-service]# ls
apollo-configservice-1.4.0.jar application-github.properties app.properties shutdown.sh startup.sh
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
4.修改portal目录下的apollo-env.properties文件,填上对应的各个环境配置中心地址,我是单机版所以都填了本地:
[root@localhost protal]# cat apollo-env.properties
local.meta=http://localhost:8080
dev.meta=http://localhost:8080
fat.meta=http://localhost:8080
uat.meta=http://localhost:8080
lpt.meta=${lpt_meta}
pro.meta=http://localhost:8080
5.依次运行三个jar包:
java -jar apollo-configservice-1.4.0.jar
java -jar apollo-adminservice-1.4.0.jar
java -jar apollo-portal-1.4.0.jar
6.浏览器访问http://192.168.153.131:8070,看到如下界面说明启动成功,初始用户名密码为:apollo/admin

四、spring cloud(boot)客户端集成apollo
1.在应用pom.xml添加如下maven依赖:
<!-- 阿波罗配置中心客户端 -->
<dependency>
<groupId>com.ctrip.framework.apollo</groupId>
<artifactId>apollo-client</artifactId>
<version>1.1.0</version>
</dependency>
2.在src/main/resources/META-INF目录下增加app.properties文件,内容如下:
app.id=你自己的应用唯一标识,和apollo管理后台添加的项目appid对应
apollo.autoUpdateInjectedSpringProperties=true
application.yml文件增加如下配置:
apollo:
meta: http://部署apollo服务器的ip:8080
bootstrap:
enabled: true
eagerLoad:
enabled: true
3.在代码中添加如下属性和注解即可使用apollo后台配置好的信息,apollo管理后台修改后1秒即可生效,无需重启应用服务器:

@Value("${name}")
private String name;
后续继续更新分布式部署apollo。
spring cloud 集成分布式配置中心 apollo(单机部署apollo)的更多相关文章
- Spring Cloud Config 分布式配置中心使用教程
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
- Spring Cloud 2-Config 分布式配置中心(七)
Spring Cloud Config 1.github配置 2.服务端配置 pom.xml application.xml Application.java 3.配置和命名 1. 配置加载顺序 ...
- Spring Cloud Config 分布式配置中心【Finchley 版】
一. 介绍 1,为什么需要配置中心? 当服务部署的越来越多,规模越来越大,对应的机器数量也越来越庞大,靠人工来管理和维护服务的配置信息,变得困难,容易出错. 因此,需要一个能够动态注册和获取服务信息的 ...
- Spring Cloud (5) 分布式配置中心
Spring Cloud Config 在分布式系统中,由于服务数量很多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,使用Spring Cloud ...
- Spring Cloud (6) 分布式配置中心-高可用
高可用 现在已经可以从配置中心读取配置文件了,当微服务很多时都从配置中心读取配置文件,这时可以将配置中心做成一个微服务,将其集群化,从而达到高可用. 改造config-server 加入eureka ...
- Spring Cloud之分布式配置中心
用服务的方式来实现 ConfigAppApplication.java package com.packtpub.ConfigApp; import org.springframework.boot. ...
- Spring Cloud Config 实现配置中心,看这一篇就够了
Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心,虽然后来又发布了 Consul 可以代替配置中心功能,但是 Config 依然适用于 Spring Clou ...
- 从0开始用spring boot编写分布式配置中心-peppa
欢迎大家一起来编写peppa github地址: github 交流群: 目前市面上比较流行的分布式配置中心有disconf.apollo,用起来还是比较方便的,然而由于在权限管理这块做得不够好,导致 ...
- 跟我学SpringCloud | 第六篇:Spring Cloud Config Github配置中心
SpringCloud系列教程 | 第六篇:Spring Cloud Config Github配置中心 Springboot: 2.1.6.RELEASE SpringCloud: Greenwic ...
随机推荐
- 8.1Go并发
第八章 Go并发 Go语言区别于其他语言的一大特点就是出色的并发性能,最重要的一个特性那就是go关键字. 并发场景: UI小姐姐一边开着PS软件,一边微信疯狂的和产品经理打字交流,后台还听着网易云音乐 ...
- mysql日志体系大盘点
MySql日志文件主要包含:错误日志.慢查询日志.事务日志.二进制日志等 Mysql的日志配置可以通过命令 show global variables like '%log%'; 执行的结果如下 &q ...
- 都说变量有七八种,到底谁是 Java 的亲儿子
网上罗列了很多关于变量的理解,良莠不齐,不知道哪些是对的,哪些是错的,所以笔者就这些博客和自己的理解写出这篇文章,如果有不对的地方,希望读者能够指正,感谢. 变量是我们经常用到的一种,我在刚学 Jav ...
- 依赖工程开发,编译报错Command Libtool failed with a nonzero exit code
升级AFN之后,SDK工程始终编译不通过找不到SDK.a 原因在SDK Target ->Build phases ->Link Binary With Libraries 多添加了SDK ...
- poj2594最小路径覆盖+floyd
Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K Total Submissions: 8909 Accepted: 3 ...
- poj2778 AC自动机
以下内容均为转载,,只有代码是自己写的=-= http://blog.csdn.net/morgan_xww/article/details/7834801 转载地址 博主写的很好 ------- ...
- 技术大佬:我去,你竟然还不会用 this 关键字
上一篇文章写的是 Spring Boot 的入门,结果有读者留言说,Java 都还没搞完,搞什么 Spring Boot,唬得我一愣一愣的.那这篇就继续来搞 Java,推出广受好评的我去系列第四集:你 ...
- vue 下拉列表动画
点击可以收起,这里注意先给需要收起展开的的容器设置高度,通过样式v-enter和v-leave-to设置结束和开始前的就可以了
- spring设计模式之applicationContext.getBean("beanName")思想
1.背景 在实际开发中我们会经常遇到不同的业务类型对应不同的业务处理,而这个业务类型又是经常变动的; 比如说,我们在做支付业务的时候,可能刚开始需要实现支付宝支付和微信支付,那么代码逻辑可能如下 /* ...
- [工具-005] C#如何绑定HotKey
由于某种需要,需要做一个控制鼠标在屏幕乱点的程序,运用C#的 [DllImport("user32.dll")] private static extern int mo ...