移动互联网时代,消息系统、推送消息是系统必不可少的一部分,无论是促销信息的推动,还是朋友圈有人点赞评论之后推送,亦或者公众号留言被选为精选都会发送消息。可以说消息已经是移动互联网很重要一部分。
消息从发送方式看可以分为两种,一种是系统发送消息,比如JD app发送促销消息,由系统发送系统圈定一部分用户进行发送。消息推荐系统,这篇文章对系统发送促销消息个性化推荐做了相应介绍。
另外一种消息系统是用户发送消息给用户,典型应用是即时通讯工具。用户发送消息给用户,这种场景下发送方也是用户。
消息推送从业务场景很清晰,发送文字、图片或视频等内容从A到B,实际情况中存在一个点是,app有在线和离线情况,在线采取一种策略发送消息,离线采用一种策略发送消息。
在线进行消息推送一般采用长链接方式,通过长链接将消息进行发送。离线方式app不再已经推出,无法通过在线长链接方式进行发送,需要采取其他方式进行发送。
离线消息是一种重要消息类型,因为当用户不在线时app退出时,在线长链接方式无法用,这时就需要离线的消息架构,离线需要考虑对于消息存储,或者通过离线消息通道将消息发送给app,离线消息苹果和谷歌都给出相应方案,核心理念是将消息通过苹果谷歌消息通道发送到手机由手机转发给app,这两种方式时离线消息常用发送方式。
消息架构还有一个点就是消息发送速率,比如微信用户发送消息是通过中间消息队列进行转发,而不是采取早些时候qq 基于udp点对点消息发送方式,这样架构方式简化了对于应对各种NAT网络穿透啊等等问题,但也需要面对新的问题就是消息转发要高效,以及要不丢失。
消息系统还面临一个挑战就是架构本身要满足业务需求扩展,比如消息本身协议设计要支持扩展,比如需要已送达、已阅读、撤回等各种个样需求。协议本身要能支持,整个系统架构不需要推翻重做。
消息系统在有就是安全性,对于即时通讯工具,通讯数据需要被加密,不能被轻易破解,以及账号安全性,是通讯 工具 要面临挺大一个问题,因为哪个用户也不想自己用的好好被别人盗去。
消息系统还有就是当消息变大极大量的时候,需要能够系统动态扩容,动态去增加处理消息能力,而不是消息丢失、以及消息延时,这都是严重影响用户体验的。
消息系统本身说起来很简单,就是内容从A发送到B,但真的做到,不卡、不慢、不丢、安全、稳定并且能够稳定支持各种在线离线,以及保证速率并且能够支持各种业务扩展就相对难度大了很多很多。
以上所述就是小编给大家介绍的《初步聊聊消息系统》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 从一道真实的面试题聊聊消息机制
- 消息队列面试连环问:如何保证消息不丢失?处理重复消息?消息有序性?消息堆积处理?
- 聊聊动态规划(2) -- 特征
- 聊聊动态规划(1) -- 概念
- 聊聊基准测试
- 聊聊MyBatis缓存机制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++ 程序设计语言(特别版)(英文影印版)
[美] Bjarne Stroustrup / 高等教育出版社 / 2001-8-1 / 55.00
《C++程序设计语言》(特别版)(影印版)作者是C++的发明人,对C++语言有着全面、深入的理解,因此他强调应将语言作为设计与编程的工具,而不仅仅是语言本身,强调只有对语言功能有了深入了解之后才能真正掌握它。《C++程序设计语言》编写的目的就是帮助读者了解C++是如何支持编程技术的,使读者能从中获得新的理解,从而成为一名优秀的编程人员和设计人员。一起来看看 《C++ 程序设计语言(特别版)(英文影印版)》 这本书的介绍吧!