目录:
- 运行时修改Bean的属性值
- 应用系统监控的实现
运行时修改Bean的属性值
背景:在系统运行时,比如有个静态集合(如
static List<String>
)是做某个配置,但是很多时候我们需要动态的修改这个配置项。比如在做灰度切流的时候,根据业务结果推送不同的切流比例等等。现状:这类功能,在很多大公司都有相应的框架和平台进行封装。所以思考从零开始可以怎么进行架构这个功能?
思考
单机,使用web接口,调用set方法动态修改属性的值
MQ实现,使用发布订阅机制,应用集群订阅相应topic
zookeeper动态更新配置,应用集群监听对应的节点变化
websocket实现,应用集群注册监听器,监听对应websocket端口
应用系统监控的实现
- 背景:系统在生产环节运行时,我们需要对系统的运行状况进行监控。监控一般分为系统监控和业务监控两部分。系统监控主要为容器的CPU、MEM、Load、流量等状态和JVM的堆内存情况、GC情况等;业务监控就是接口对应的QPS、成功失败情况、业务自定义参数情况。
- 现状:监控,基本公司也都有封装的对应平台。系统监控主要是容器报告运行状况,业务监控主要通过日志回流解析。
- 思考
- 性能监控:Spring boot admin,都去spring boot actuator的数据显示UI
- 业务监控:ELK。可以参考一下文档: