websocket消息推送,如何实现不频繁查询数据库,还能将数据库中数据量实时更新到前端界面上?

问题描述:
目前有一个业务场景,是通过websocket来实现消息推送的,目前的做法是,每次接收到一条新的消息后,更新到数据库后,再通过查询数据库将数据库中符合该用户组的消息数量统计出来,并通过websocket推送到前端界面上,进行显示。现在的问题是,若在某一个时刻产生大量的新消息,每插入一条消息,均要对数据库进行查询消息总量,这样会对数据库产生很大的压力,鉴于这种情况下,该如何保证在不频繁查询数据库的情况下,还能保证前端界面上显示的消息总数和数据库保持一致呢?

2个回答

数据库和websocket所在的应用层分离,websocket所在的应用层做分布式缓存

对于“若在某一个时刻产生大量的新消息,每插入一条消息,均要对数据库进行查询消息总量”能否等到所有消息插入完成后再统一进行统计呢?
或者消息总数直接在内存中不要入库。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问