海量消息的直播互动系统---融云

海量消息的直播互动系统---融云

融云是做即时性消息通宵的一个平台,由于这个产品和我们目前正在开发的pushservice比较像,所以后期思考的比较多,和讲师也多次线下沟通,但是由于某些原因,具体的业务细节并没有进行详谈,方案上有很多可借鉴之处。

其业务模型如下:

下面分析下他这个模型:

在一个实时消息推送系统中需要保证不同QoS级别的消息,想一些红包之类就需要完全高可靠,像一些弹幕就需要通过设置消息可靠性的等级来推送,有的就不需要保证太强的可靠性。由于是直播间,那消息量和用户量都是没有上线的,且瞬间并发量很高。总结起来有以下几个特点:

1、链接数无上线

2、瞬时消息峰值较高

3、红包礼物要求保障可靠性

4、系统稳定性好

5、系统可伸缩性好

其业务模型大致如下,客户端发送一个消息到服务端时,服务端返回一个应答ack,确认消息已经收到,这里每个消息都一个递增的消息id,然后服务端将消息id发送给客户端,客户端来去这个id所对应的消息,当然也可以一次发送某一段的消息id,客户端B收到消息后,来服务端查询,如果查询不到可以继续查询(或等待下一次消息id的推送)。

这样做的几个原因:

1、通知的推送无需消息质量的保障

2、服务端的消息存储顺序和和到达客户端的顺序一致

3、消息密集时可以将消息合并进行处理

4、可以控制消息的下发条数

5、以存储分级实现消息分级

6、不以消息的条数控制服务器的规模,以用户连接数来控制

这里有个疑问:为什么不是主动推送消息到客户端B,等客户端B应答ACK?

如果推送超时,那么需要重新推送。而现在不需要(主要和直播这种业务模型有关,这里可以采用定时器,或者等下一条消息推送到了,就会触发下一次推送,通常下一条消息到了的可能性较大)。(注释:服务端和客户端之间的通讯采用的是私有化的MQTT实现)

还有个疑问就是如何保障缓存区不溢出?

每个类型的消息都有一个队列,可靠性高的就不设置队列限制,反之就采用LRU算法来限制队列。

其组网架构如下:


时间:2014-2015.8

同一直播间的用户会落到同一节点。

业务与消息在同一服务

最大支持单一直播间9000人(爆个内幕:直播服务上面显示的人数一般都是现有人数的xx倍)

这里有个问题就是连接层和业务层是两个集群,(私下沟通:其集群内的通讯都是通过ak来完成)那么在集群通讯的时候,另外一个集群只有一个receptionlist节点来接受消息,在一定程度上会形成消息瓶颈。(这里在微信问了讲师,还没回,好像被我问烦了。。。)可能需要我们自己实测一下。

2.0版本


2.0的版本将消息服务和直播服务分开了。。。



2.1的时候有加了一个控制层,估计是用来做路由的,将某条消息路由到某个固定的连接

还需要了解的技术点:

一致性hash保证连接,环形队列保证?

gj8:[~N

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,387评论 25 707
  • “ 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列...
    落羽成霜丶阅读 3,974评论 1 41
  • 我希望 我有更多的勇气 面对纷扰 不再焦虑 给宝贝的 能够 春风化雨 无声无息
    李云扬阅读 353评论 3 12
  • 监测网络连接状态的必要性: iOS平台是按照一直有网络连接的思路来设计的,开发者利用这一特点创造了很多优秀的第三方...
    零距离仰望星空阅读 9,746评论 9 16