IcedSoul / WithMe

基于WebScoket协议实现的即时聊天项目。后台使用SpringMVC和Hibernate
http://119.23.212.211:8080/WithMe
142 stars 73 forks source link

你好,现在你的实时聊天数据是怎么存储的 #1

Closed Awesom1-Tech closed 5 years ago

Awesom1-Tech commented 5 years ago

我做了一个web即时聊天的demo,然后就在想发送的聊天数据怎么存储下来更好 我考虑过用MySQL做,但是假设人很多的话,数据库会吃不消我觉得, 所以我想了解一下有没有什么更好的方式来存储聊天数据, 我现在想到的选择就是用Redis或者MongonDB 麻烦了

IcedSoul commented 5 years ago

你说的问题我当初也考虑过。 目前我存储聊天记录使用的依旧是MySQL,性能当然一般。虽然在重构时考虑过使用Redis并且加上缓存,但是因为不是很熟悉Redis最后也没有成功加上去,还是妥协继续使用MySQL。 个人意见如果想要保证在聊天记录比较多的时候的性能的话,可以考虑使用消息队列或者缓存,但是这种异步存储的方式会导致聊天记录展示最新的消息有延时,客户端需要考虑到这种情况并且做出对应的补偿。当然相关的内容我也没有实现,只是个人看法。

IcedSoul commented 5 years ago

说错了,不是保证性能,是保证可用性,因为消息队列和缓存实际上对性能提升没有帮助。

Awesom1-Tech commented 5 years ago

说错了,不是保证性能,是保证可用性,因为消息队列和缓存实际上对性能提升没有帮助。

行,谢啦,我去查查你说的这些,谢啦