齐星空豚 2022-06-18 13:53 采纳率: 0%
浏览 11

java即时通信WEB海量数据存储

想用java制作个类似qq的即时通信IM(企业级)
前端使用vue,后端使用ssm,maven框架,数据库使用mysql,redis
希望大家能提供一些有益的建议
1.其中的用户收到的消息记录该如何存储啊(多个用户发的多个消息)(使用数据库存储海量数据,如何不卡,用户数量群体大)
2等等
  • 写回答

2条回答 默认 最新

  • 小锅菜108 2022-06-18 20:15
    关注

    首先您的业务场景是:高并发、海量用户、海量数据,那么您需要考虑以下几个问题:
    1、大量用户对系统请求后,可能会造成网络带宽和Web服务器的I/O瓶颈
    2、接收大量用户请求进行计算,可能会造成业务服务器和业务支撑服务器的瓶颈
    3、传输层和计算层将会产生大量的数据,数据量暴增,可能会导致数据库和储存上的瓶颈

    关于您提到的海量数据存储/读取问题,可以考虑以下方案:
    1、由于系统的读大于写的频率,数据库架构采用了1主/多从,双主多从的策略,将读和写进行分离,并且将大量的读请求分散给多台不同的(Slave)服务器。
    2、将不同的时间段作为分区的主要策略,提高对数据的读写性能。
    3、一台数据库将很快无法满足大量并发,考虑使用库表散列,将数据库中的数据进行分散存储。
    4、使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月18日