- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何搭建亿级社交信息分享社交平台架构如何搭建亿级社交信息分享社交平台架构
如何搭建亿级社交信息分享社交平台架构本文章来自于阿里云云栖社区如何搭建一个稳定、高并发的IM系统架构?怎样构建高并发即时通信系统?这个需求在构建社交IM和朋友圈应用时,经常会遇到。在这种场景下,一个基本的需求是将用户发送的消息和朋友圈更新及时准确的更新给该用户的好友。为了做到这一点,通常需要为用户发送的每一条消息或者朋友圈更新设置一个序号或者ID,并且保证递增...如何搭建一个稳定、高并发的IM系统架构?怎样构建高并发即时通信系统?这个需求在构建社交IM和朋友圈应用时,经常会遇到。在这种场景下,一个基本的需求是将用户发送的消息和朋友圈更新及时准确的更新给该用户的好友。为了做到这一点,通常需要为用户发送的每一条消息或者朋友圈更新设置一个序号或者ID,并且保证递增,通过这一机制来确保所有的消息能够按照完整并且以正确的顺序被接收端处理。?当消息总量或者消息发送的并发数很大的时候,我们通常选择NoSQL存储产品来存储消息,但常见的NoSQL产品都没有提供自增列的功能,因此通常要借助外部组件来实现消息序号和ID的递增,使得整体的架构更加复杂,也影响了整条链路的延时。?云产品解决方案阿里云表格存储新推出的?主键列递增?功能可以有效地处理上述场景的需求。具体做法为在创建表时,声明主键中的某一列为自增列,在写入一行新数据的时候,应用无需为自增列填入真实值,只需填入一个占位符,表格存储系统在接收到这一行数据后会自动为自增列生成一个值,并且保证在相同的分区键范围内,后生成的值比先生成的值大.主键列自增功能具有以下几个特性:·?表格存储独有的系统架构和主键自增列实现方式,可以保证生成的自增列的值唯一,且?严格递增?。·?目前支持多个主键,第一个主键为分区键,为了数据的均匀分布,不允许设置分区健为自增列。·?因为分区健不允许设置为自增列,所以主键列自增是?分区键级别的自增?。·?除了分区键外,其余主键中的任意一个都可以被设置为递增列。·?对于每张表,目前?只允许设置一个主键列为自增列?。·?属性列不允许设置为自增列。·?自增列自动生成的值为?64位的有符号长整型?。·?自增列功能是?表级别?的,同一个实例下面可以有自增列的表,也可以有非自增列的表。·?仅支持在创建表的时候设置自增列,对于已存在的表不支持升级为自增列。介绍了表格存储的主键列自增功能后,下面通过具体的场景介绍下如何使用。场景我们继续文章开头的例子,通过构建一个IM聊天工具,演示主键列自增功能的作用和使用方法。功能我们要做的IM聊天软件需要支持下列功能:·?支持用户一对一聊天·?支持用户群组内聊天·?支持同一个用户的多终端消息同步现有架构第一步,确定消息模型·?上图展示这一消息模型·?发送方发送了一条消息后,消息会被客户端推送给后台系统·?后台系统会先存储消息·?存储成功后,会推送消息给接收方的客户端第二步,确定后台架构·?后台架构主要分为两部分:逻辑层和存储层。·?逻辑层包括应用服务器,队列服务和自增ID生成器,是整个后台架构的核心,处理消息的接收、推送、通知,群消息写复制等核心业务逻辑。·?存储层主要是用来持久化消息数据和其他一些需要持久化的数据。·?对于一对一聊天,发送方发送消息给应用服务器后,应用服务器将消息存到接收方为主键的表中,同时通知应用服务器中的消息推送服务有新消息了,消息推送服务会将上次推送给接收方的最后一条消息的消息ID作为起始主键,从存储系统中读取之后的所有消息,然后将消息推送给接收方。·?对于群组内的聊天,逻辑会更加复杂,需要通过异步队列来完成消息的扩散写,也就是说发到群组内的一条消息会给群组内的每个人都存一份。·?上图展示了省略掉存储层后的群消息发送过程。·?使用扩散写而非扩散读,主要是由于以下两点原因:o?群组内成员一般都不多,存储成本并不高,而且有压缩,成本更低。o?消息扩散写到每个人的存储中(收件箱)后,为每个接收方推送消息时,只需要检查自己的收件箱即可,这时候,群聊和单聊的处理逻辑一样,实现简单。·?发送方发送了一条消息后,这条消息被客户端推送给应用服务器,应用服务器根据接收者的ID,将消息分发给其中一个队列,同一个接收者的消息位于同一个队列中,在队列中,顺序的处理每条消息,先从自增ID生成器中获取一个新的消息ID,然后将这条消息写入表格存储系统。写成功后再写入下一条消息。·?同一个接收方的消息会尽量在一个队列中,一个队列中可能会有多个接收方的消息。·???¤??????è???¤??????ˉè???????o??°????????a????????¤??a??¨??·?????????é???o??????ˉ???è????¤??a?????ˉ??ˉè?????è????¥??????????o???¨????????¨????????ˉ?o???¨?
您可能关注的文档
- 十亿也买不来的销售经验十亿也买不来的销售经验.docx
- 十八个超经典故事十八个超经典故事.docx
- 十大经典管理理论十大经典管理理论.docx
- 十首好听的草原歌曲十首好听的草原歌曲.docx
- 半夏种植现状和发展建议半夏种植现状和发展建议.docx
- 华东师范大学数学系考研报考录取信息,备考,复试试题和复试经验华东师范大学数学系考研报考录取信息,备考,复试试题和复试经验.docx
- 华东理工大网络学院2017年春季《经济法》(本)网上作业答案华东理工大网络学院2017年春季《经济法》(本)网上作业答案.docx
- 华为交换机的端口hybrid端口属性配置华为交换机的端口hybrid端口属性配置.docx
- 华为Oceanstor S2600 管理手册华为Oceanstor S2600 管理手册.docx
- 华为手机国际市场调查报告华为手机国际市场调查报告.docx
- 如何有效防治小儿感冒如何有效防治小儿感冒.docx
- 如何激励员工?答案很简单!(中英文)如何激励员工?答案很简单!(中英文).docx
- 如何用PS制作逼真残缺印泥的印章效果如何用PS制作逼真残缺印泥的印章效果.docx
- 如何搞定新托福阅读理解题如何搞定新托福阅读理解题.docx
- 如何用医院文化来留住员工——梅奥如何用医院文化来留住员工——梅奥.docx
- 如何用图片讲故事如何用图片讲故事.ppt
- 如何管理小学一年级的课堂秩序一如何管理小学一年级的课堂秩序一.docx
- 如何管理与降低显性成本试卷答案如何管理与降低显性成本试卷答案.docx
- 如何绘好HR管理的“地图”如何绘好HR管理的“地图”.docx
- 如何编制BBQ阀门项目商业计划书(VC标准+融资方案设计+2013范文模版)及融资对接如何编制BBQ阀门项目商业计划书(VC标准+融资方案设计+2013范文模版)及融资对接.docx
最近下载
- 【外研社Unipus】新探索研究生英语(基础级)读写教程U6课件_AE2.pptx VIP
- 人教新起点五年级上册英语Unit2 lesson1课件.ppt VIP
- 脊柱常见病的介绍.pptx
- 英格索兰空压机操作培训.ppt VIP
- 机电专业毕业设计论文题目及机电一体化专业毕业论文.docx VIP
- 【外研社Unipus】新探索研究生英语(基础级)读写教程U1课件_AE1.pptx VIP
- 报价单范本完整版.doc VIP
- 2025年人教版七年级英语小升初暑假衔接:七上Starter Unit 2 Keep Tidy! 讲义(学生版+教师版).docx
- 2025年广东省中考英语试题卷(含标准答案及解析)+听力音频.docx
- XS9922B芯片用户指南_V1.3-海格.pdf
文档评论(0)