初步聊聊消息系统

栏目: 后端 · 发布时间: 6年前

移动互联网时代,消息系统、推送消息是系统必不可少的一部分,无论是促销信息的推动,还是朋友圈有人点赞评论之后推送,亦或者公众号留言被选为精选都会发送消息。可以说消息已经是移动互联网很重要一部分。

初步聊聊消息系统

消息从发送方式看可以分为两种,一种是系统发送消息,比如JD app发送促销消息,由系统发送系统圈定一部分用户进行发送。消息推荐系统,这篇文章对系统发送促销消息个性化推荐做了相应介绍。

另外一种消息系统是用户发送消息给用户,典型应用是即时通讯工具。用户发送消息给用户,这种场景下发送方也是用户。

消息推送从业务场景很清晰,发送文字、图片或视频等内容从A到B,实际情况中存在一个点是,app有在线和离线情况,在线采取一种策略发送消息,离线采用一种策略发送消息。

在线进行消息推送一般采用长链接方式,通过长链接将消息进行发送。离线方式app不再已经推出,无法通过在线长链接方式进行发送,需要采取其他方式进行发送。

离线消息是一种重要消息类型,因为当用户不在线时app退出时,在线长链接方式无法用,这时就需要离线的消息架构,离线需要考虑对于消息存储,或者通过离线消息通道将消息发送给app,离线消息苹果和谷歌都给出相应方案,核心理念是将消息通过苹果谷歌消息通道发送到手机由手机转发给app,这两种方式时离线消息常用发送方式。

消息架构还有一个点就是消息发送速率,比如微信用户发送消息是通过中间消息队列进行转发,而不是采取早些时候qq 基于udp点对点消息发送方式,这样架构方式简化了对于应对各种NAT网络穿透啊等等问题,但也需要面对新的问题就是消息转发要高效,以及要不丢失。

消息系统还面临一个挑战就是架构本身要满足业务需求扩展,比如消息本身协议设计要支持扩展,比如需要已送达、已阅读、撤回等各种个样需求。协议本身要能支持,整个系统架构不需要推翻重做。

消息系统在有就是安全性,对于即时通讯工具,通讯数据需要被加密,不能被轻易破解,以及账号安全性,是通讯 工具 要面临挺大一个问题,因为哪个用户也不想自己用的好好被别人盗去。

消息系统还有就是当消息变大极大量的时候,需要能够系统动态扩容,动态去增加处理消息能力,而不是消息丢失、以及消息延时,这都是严重影响用户体验的。

消息系统本身说起来很简单,就是内容从A发送到B,但真的做到,不卡、不慢、不丢、安全、稳定并且能够稳定支持各种在线离线,以及保证速率并且能够支持各种业务扩展就相对难度大了很多很多。


以上所述就是小编给大家介绍的《初步聊聊消息系统》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

CLR via C#

CLR via C#

(美)Jeffrey Richter / 周靖 / 清华大学出版社 / 2010-9 / 99.00元

本书针对CLR和.NET Framework 4.0进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。全书5部分29章。第Ⅰ部分介绍CLR基础,第Ⅱ部分解释如何设计类型,第Ⅲ部分介绍基本类型,第Ⅳ部分以实用特性为主题,第Ⅴ部分花大量篇幅重点介绍线程处理。 通过本书的阅读,读者可以掌握CLR和.NET Framework的精髓,轻松、高效地创建高性能应用程序。一起来看看 《CLR via C#》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

SHA 加密
SHA 加密

SHA 加密工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具