一、问题描述
性能问题
今天开发完功能在本地测试时,发现有一个页面加载缓慢,经排查发现是一个接口响应时间过长导致的。

性能指标
可以看到页面加载平均耗时1秒左右,对用户体验影响较大。
2024年11月30日大约 3 分钟
性能问题
今天开发完功能在本地测试时,发现有一个页面加载缓慢,经排查发现是一个接口响应时间过长导致的。

性能指标
可以看到页面加载平均耗时1秒左右,对用户体验影响较大。
在水务项目开发过程中,对于设备获取到的数据系统需要根据用户设置的规则进行处理,判断该条数据是否异常,并且根据规则判断是否应该生成告警信息,并将处理结果保存到数据库中。 我们系统采用的微服务架构,阈值规则和告警不属于同一个模块,对于需要生成告警的数据要么考虑 openfeign 或者使用 RPC 远程调用。
为什么选择消息队列
这里我选择使用消息队列实现这一功能,这样阈值规则模块处理完数据,如果需要生成告警只需要发送消息让告警模块去异步处理,无需同步。等待即使告警模块挂了,也不会影响数据处理。因为消息队列可以实现异步处理、解耦、削峰,符合业务需要。
在开发过程中遇到一个看似简单但困扰了很久的问题。一个基础的SQL插入语句执行时报错,提示找不到equipmentId字段。具体代码如下:
void save(@Param("alarm") Alarms alarm);