我们全部用c#写过一个,客户端使用的Xamarin,服务器用的Orleans(类似于java的akka)。
机器扔在北京阿里云了,性能比微信好,发消息rtt均值在200ms以下,基本上用户看不见发消息那个转圈。吞吐方面,阿里云4个节点一共2k多一个月,这样的机器配置环境中,一秒几k的消息发送。
吞吐受限于机器的iops,我们使用的阿里云600多的ssd的ecs,ecs的iops不怎么样,好像是消息吞吐的2倍多的样子。
时间长了数据就看个大概吧。
im最麻烦的是任何情况都不能丢消息,其次是延时。
任何情况要画重点:服务器要多结点以便维护,接入点要多结点。
actor保活探测要做好,恢复要做好,否则内网抖一下就全玩完了。
发送端用户点了发送之后用户坐个电梯不能丢消息
发送端在地铁上可能切换接入点。
dns必须控制,否则2s发不出一个消息等投诉吧
接收端不能重复展示消息
im技术方面的世界记录是erlang的whatsapp,cpu内存什么的根本不重要,重要的是robust
【 在 hgoldfish 的大作中提到: 】
: 其实。。im 这东东。。压根不是 java 社区应该讨论的东东。。
: 应该从底层就用 c/cpp 等 native 的,能精确控制 CPU 和内存资源的语言构建。go 恐怕都不行。
:
--
修改:leadu FROM 123.115.136.*
FROM 123.115.136.*