从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇内容介绍了“java分布式系统中处理参数配置的方案有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了万源免费建站欢迎大家使用!
一个系统中包含有各种各样的配置信息,如一个日志文件需要配置以下几个信息。
日志文件生成主目录
日志文件名称,不同的日志级别对应不同的文件
当前日志级别
还有其他各种业务参数、系统参数等,大多单一系统是直接把这些配置写死在配置文件中,当部署到测试、生产环境就再修改下配置文件,这样很容易出错,也不能灵活修改。还有就是系统变成分布式系统后,子系统越来越多,你要维护这些配置就变得越来越困难。
我觉得至少要能解决以下几个问题才能算优秀!
1)能在线灵活修改配置
2)能在线动态刷新配置
3)能根据不同环境配置
4)能统一管理维护配置
把所有参数存储到数据库,系统启动的时候加载到内存。
这种实现方式比较简单,但需要占用数据库资源,系统简单压力较小时可以选用此种方式。
利用 Maven 的 maven-resources-plugin
插件,然后根据不同的环境(Profile)提供不同环境的配置文件,这样,不同环境的配置信息在打包阶段就决定好了。
这样只能解决了不同操作系统上面的配置,不能灵活动态修改,每次更新只能重新打包或者在线修改配置文件,而且信息也难于同步,如果项目少还好,项目多起来,配置还要经常变动,这样变得异常烦琐。
可以把属性值设置到环境变量中,然后读取后设置到 Java 系统属性中。这种可以实现区分不同环境的目的,但仍然不能动态更新配置,而且配置和维护环境变量相当麻烦,并且在分布式系统中更是个十分头疼的问题。
// 读取环境变量
java.lang.System#getenv(java.lang.String)
// 设置系统属性
java.lang.System#setProperty
这种方法,一些全局的系统配置,如日志、缓存、临时目录等可以参考,主流日志系统都支持从 system properties 中读取配置。其他一些配置,不建议存储在环境变量中。
1)目前大多数分布式配置中心都是基于 Zookeeper 来实现的,Spring Cloud 有自己的配置中心组件,它们都支持在线动态更新和刷新配置。
2)直接把配置存放在数据库,如果系统并发小的或者管理类系统的话可以参考,对于高并发应用不建议用数据库做配置中心,毕竟它会带来访问压力,而且实现动态更新配置也比较复杂。
“java分布式系统中处理参数配置的方案有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图