淘东电商项目(10) -Apollo分布式配置中心管理application.yml

简介: 淘东电商项目(10) -Apollo分布式配置中心管理application.yml

引言

在上一节《淘东电商项目(09) -Maven私服的上传与下载详解》,主要讲解了如何上传jar包到Maven私服以及如何从Maven私服下载jar包。

代码已提交至Github(版本号:89dc5fb93f251f2c1c2d6f8b7c4362c721da685a),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

本文继续讲解分布式基础设施环境的搭建,主要讲解Apollo分布式配置中心,以及如何把微服务的配置文件application.yml全部托管到Apollo。

本文目录结构:

l____引言

l____ 1. Apollo搭建与配置

l________ 1.1 Apollo搭建配置

l________ 1.2 Apollo启动

l____ 2. Apollo管理application.yml

l________ 2.1 Apollo创建项目

l________ 2.2 application.yml托管到Apollo

l________ 2.3 项目集成Apollo

l____ 3. 其它

l____总结

1. Apollo环境搭建与配置

1.1 Apollo搭建配置

《分布式系列课程》里,我曾写过关于Apollo环境搭建的教程,大家可以参考《分布式配置中心Apollo安装与详解》

因为我是直接把文章中的Apollo的系统完整克隆出来的,所以要修改里面的服务器地址(旧的ip是192.168.162.131,新的地址是192.168.162.135),修改的地方有:

  • ApolloConfigDB数据库里面的ServerConfig表中的eureka.service.url字段
  • 编辑Apollo解压目录下demo.sh文件,内容如下:

1.2 Apollo启动

1.启动MySQL数据库(版本5.7以上)

2.启动Apollo配置中心,启动脚本在安装目录下的demo.sh文件:

./demo.sh start

启动成功如下图:

3.登录账号:apollo,密码:admin

4.登录成功

2. Apollo管理application.yml

2.1 Apollo创建项目

step1.登录Apollo,创建项目(这里的项目其实就是每个部门管理的微服务),以微信微服务为例子:

step2.输入部门的id、微服务名称、负责人等信息

step3.

2.2 application.yml托管到Apollo

step1.首先转换微信服务项目(taodong-shop-service-weixin)的applicatoin.yml为apollo识别的格式(properties),转换网站:http://www.toyaml.com/index.html

step2.打开Apollo文本模式:

step3.复制转换后的内容到Apollo中的app-service-weixin项目,复制内容如下(为了方便测试,我把Eureka注册中心改为Apollo的注册中心地址了eureka.client.service-url.defaultZone=http://192.168.162.135:8080/eureka):

server.port=8200
spring.application.name=taodong-shop-service-weixin
eureka.client.service-url.defaultZone=http://localhost:8100/eureka
swagger.base-package=com.ylw.taodong
swagger.title=淘东电商项目-微信服务接口
swagger.description=该项目“基于SpringCloud2.x构建微服务电商项目。
swagger.version=1.1
swagger.terms-of-service-url=www.xxx.com
swagger.contact.name=杨林伟
swagger.contact.email=xxxxxx@qq.com

step4.点击勾保存,可以看到Table视图下,配置文件都自动生成了。

step5. 点击发布,可以看到下面的状态都变为已发布了:

2.3 项目集成Apollo

step1.删除微信微服务的application.yml

step2.新增maven依赖(增加到服务模块的pom.xml文件taodong-shop-service):

<dependency>
  <groupId>com.ctrip.framework.apollo</groupId>
  <artifactId>apollo-client</artifactId>
  <version>1.0.0</version>
</dependency>
<dependency>
  <groupId>com.ctrip.framework.apollo</groupId>
  <artifactId>apollo-core</artifactId>
  <version>1.0.0</version>
</dependency>

step3.在resources文件夹目录下创建 application.properties文件,并填写apollo相关的配置信息:

app.id=app-service-weixin
apollo.meta=http://192.168.162.135:8080

step4.项目启动开启阿波罗配置文件@EnableApolloConfig:

@SpringBootApplication
@EnableEurekaClient
@EnableSwagger2Doc
@EnableApolloConfig
public class AppWeiXin {
    public static void main(String[] args) {
        SpringApplication.run(AppWeiXin.class, args);
    }
}

step5.启动项目,发现没有报错,控制台的内容与配置的信息apollo配置中心的内容都一致:

3. 其它

1.为什么要使用分布式配置中心?

答:统一管理微服务配置文件,可以实现动态化刷新配置文件。


2.为什么我们要使用阿波罗不使用SpringCloudConfig?

答:阿波罗配置文件存放在数据库中,SpringCloudConfig存放在Git里面。


3.如果关闭了Apollo配置中心,还能读取到内容吗?

答:还是可以读取到的,内容会缓存到项目本地项目文/classes/config-cache/app-service-weixin+default+application.properties


4.如果Apollo配置了服务器访问端口,不重启,能生效吗?

答:不可以,因为只会Apollo发布了配置信息之后,微服务会监听到配置信息的改变,刷新到JVM。但是项目在启动的时候就从配置文件获取到了端口,而非JVM,所以即使变化了,也不能在不重启的情况下直接改变端口号。

总结

目录
相关文章
|
4月前
|
机器学习/深度学习 监控 算法
分布式光伏储能系统的优化配置方法(Matlab代码实现)
分布式光伏储能系统的优化配置方法(Matlab代码实现)
224 1
|
3月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
210 12
|
9月前
|
安全 网络安全 数据库
YashanDB分布式节点间SSL连接配置
本文介绍YashanDB分布式节点间SSL连接配置方法,确保通信安全。需统一为整个集群配置SSL,使用相同根证书签名的服务器证书,否则可能导致连接失败或数据库无法启动。文章详细说明了使用OpenSSL生成根证书、服务器私钥、证书及DH文件的步骤,并指导如何将证书分发至各节点。最后,通过配置数据库参数(如`din_ssl_enable`)并重启集群完成设置。注意,证书过期需重新生成以保障安全性。
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
615 160
|
11月前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
|
消息中间件 负载均衡 Java
如何设计一个分布式配置中心?
这篇文章介绍了分布式配置中心的概念、实现原理及其在实际应用中的重要性。首先通过一个面试场景引出配置中心的设计问题,接着详细解释了为什么需要分布式配置中心,尤其是在分布式系统中统一管理配置文件的必要性。文章重点分析了Apollo这一开源配置管理中心的工作原理,包括其基础模型、架构模块以及配置发布后实时生效的设计。此外,还介绍了客户端与服务端之间的交互机制,如长轮询(Http Long Polling)和定时拉取配置的fallback机制。最后,结合实际工作经验,分享了配置中心在解决多台服务器配置同步问题上的优势,帮助读者更好地理解其应用场景和价值。
638 18
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
285 1
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
238 0
|
Java 测试技术 Spring
分布式之配置中心
分布式之配置中心
178 1

热门文章

最新文章