JAVA全系列 教程
3762个小节阅读:7090.6k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
我们现在有一个项目,使用SpringBoot进行开发的,配置文件的话我们知道是一个叫做application.yml的文件。
xxxxxxxxxx
#业务参数相关配置
spring:
# 数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://192.168.47.1003306/test
username: root
password: 123456
由于业务的变动,用户在以前进行注册的时候默认的数据库在192.168.47.100
,但是该节点数据库出现问题,需要把IP这个改成192.168.47.101
。因为,业务的流量还是比较大的,所以,没有办法在白天流量高峰期修改配置文件,进行重启!
问题:
就辛苦开发的小哥,他们需要等到半夜里凌晨三四点的时候,没有流量的时候,小心翼翼的去修改application.properties配置文件,必将系统进行重启。开发小哥是在忍受不了这种变更了,修改一个配置就需要如此周折的去完成这件事情!忍无可忍。
我们在进行业务开发的时候,一般会有多个环境,至少应该有三个:开发、测试、线上。那这三个环境之间的配置文件肯定是有不同的,比如说他们之间的数据库是肯定不同的!
分别需要设置的命令如下:
xxxxxxxxxx
java -jar -Dspring.profiles.active=dev nssas.jar
和
java -jar -Dspring.profiles.active=test nssas.jar
和
java -jar -Dspring.profiles.active=prod nssas.jar
运维小哥的工作量直接翻了一倍多,想想还有十几个项目需要这样进行修改,运维小哥悄悄的拿起了抽屉里准备了很久的xxx走向了开发小哥。
主要缺点:
- 不支持配置文件的动态更新:在实际的业务开发过程中,需要动态地更新配置文件,比如切换业务功能开关、变更图片服务器地址、变更数据库连接信息等。在传统配置模式下,需要修改本地配置文件并重新打包,然后重启应用并发布,这样才能保证配置文件能够生效。但这样会导致该服务在重启阶段不可用,从而影响服务整体的可用率。
- 不支持配置集中式管理:在微服务架构中,为了保证某些核心服务的高性能会部署几百个节点。如果在每个节点上都维护一个本地配置文件,则不管是对运维人员或者开发人员而言,成本都是巨大的。
- 不支持多环境部署:如果通过底层框架来维护不同环境的信息,则成本也是非常高的。
注意:
把各个服务的某些配置信息统一交给第三方中间件来维护,分布式配置管理上的数据变变更,需要实时地推送到相对应的应用服务节点上。
实时效果反馈
1.不使用分布式配置中心有那些缺点是_____。
A 不支持配置文件的动态更新
B 不支持配置集中式管理
C 不支持多环境部署
D 以上都是正确
答案
1=>A