通过观察者模式实现配置中心的及时响应

本文探讨了如何解决配置文件更改后需要重启服务的问题,提出了配置中心的概念。传统的Spring properties文件更改需要重启,不适合频繁变动的配置。为解决此问题,各大公司通常开发配置中心组件,允许系统通过RPC获取最新的配置信息。文章分析了一种直接但不合理的解决方案,即配置变化时直接调用线程池参数设置方法,指出该方案的模块依赖不合理和扩展性差的问题。最后,文章提出使用观察者模式,让业务模块作为观察者监听配置中心的变化,实现更合理的解耦和扩展性。
摘要由CSDN通过智能技术生成

                                       一:背景描述

大家在日常的Java后台开发,少不了各式各样的配置文件,例如spring的xml配置文件和properties配置文件。

一般来说,预期会时不时改变的数据都会抽取放入到配置文件中,而不是写死。例如线程池的corePoolSize,maxPoolSize等等,当发现段时间任务数量迅速上升,而硬件资源利用率不高时,一般都会将线程池的线程数量调大点。

但是,spring的properties文件有个缺陷,必须得重启才能生效。对于频繁变化的配置信息,并不合适。

为了解决这么个问题,一般各大公司都会开发全局的配置中心组件。各个系统通过接入配置中心,将频繁变化的配置信息放入其中,组件会定时的通过RPC获取远端配置的最新数据。这样,配置的改动不需要通过重启机器就能及时的体现在系统中。

假设现在有这么的场景,某系统有多个业务模块,每个模块都有各自专用的线程池,线程池的参数设置需要通过配置中心进行快速的调整,怎么搞?

                           二:一种不太合理的解决方案

最简单的直接的方式,就是当配置文件变化时,主动调用对应线程池相关参数的set方法进行参数设置。模拟代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值