全民聊天的技术已经非常成熟了,在遥远的千里之外我们不仅可以语音对话,还能开启摄像头观看对方的实时动态,为我们的感情交流提供了非常便捷的技术。其实在技术层面,聊天软件看似成熟,但是也存在很多的技术难点。比如群聊的时候就有这样的问题,当几千人在一个群里,大家都在讲话,这样就存在一个并发性问题产生,技术部成熟可能会引起卡顿,无法听清楚对方的讲话内容。如果开启视频更加占用了服务器的带宽资源。怎么解决类似的问题呢?我们研发了新的架构体系。
现有架构存在的挑战可通过使用表格存储的主键列自增功能轻松解决。
使用了表格存储主键列自增功能后的新架构特点如下:
与原架构相比,新架构最明显的区别是减少了队列服务和自增ID生成器两个组件,架构更加简单。
应用服务器接收到消息后,直接将消息写入表格存储,对于主键自增列message_id,在写数据时不需要填写具体的值,只需要填充一个特定的占位符即可,此值会在表格存储系统内部自动生成。
新架构中自增操作是在表格存储系统内部处理的,就算多个应用服务器同时给表格存储中的同一个接收方写数据,表格存储内部也能保证这些消息是串行处理,每个消息都有一个独立的消息ID,且严格递增。使用主键列自增功能,就不再需要队列服务,这样也就彻底解决了原架构的问题。
原架构只能有一个队列处理同一个用户的消息,新架构可以多个队列并行处理,当一些用户的消息量突然变大时,也不会立即堵塞其他用户,而是将压力均匀分布给了所有队列。
使用主键自增列功能后,应用服务器可以直接写数据到表格存储,不再需要经过队列和获取消息ID,性能表现会更加优秀。
社交软件没有强大的技术体系支撑,很难做到一款大众认可的产品,类似微信的聊天软件
社交软件没有强大的技术体系支撑,很难做到一款大众认可的产品,类似微信的聊天软件开发我们具备足够的经验。