• steven
    2022-03-24
    老师,有点疑问,感觉这个im层的算法不太对,如果峰值发送消息是10w,我们得假设一个比例才行,根据业务实际情况来进行评估,比如telegram 偏重群聊,微信可能五五开,大家在群聊的时间应该是60%,假设常规一点的应该是50%,那么10万条消息的下推的qps应该是: 5w * 1 + 5w *平均群聊人数,平均群聊人数也可以和实际业务结合,假设平均都是小群,30人左右(应该结合业务估算),那么下推qps: 5w+ 5w*30 =135w左右才对。不知道我这么算对不对

    作者回复: 对的,非常赞! 由于这个是非常业务的特点,所以课程中就没有展开说了,以我自己的使用习惯估算了一个比率。

    
    3
  • Geek_7c1d70
    2022-05-18
    发送消息是否可以走长链方式? tcp效率高于http

    作者回复: 是的,可以走长连接发送 http 协议要简单些,效率上,http 底层也是 tcp,可以开启 keep-alive

    
    1
  • 威
    2022-03-15
    老师你好,请问IM里“信令”要怎样理解,相应除了“信令”,还有哪些其他类型的消息

    作者回复: 信令是指通知类的消息,用于服务器主动通知客户端的,不包含消息内容,比如收到新的消息、新的好友申请等等通知。 普通的消息是指用户发送的信息内容等实际的数据内容。

    共 3 条评论
    
  • 风
    2022-05-30
    老师,看了架构图有几点疑问请问下 1.第5点将uid与长链接id绑定是客户端登录后做的操作吧,那绑定后的映射关系应该存储到内部路由服务中啊,那箭头是不是指错了? 2.im建立长连接就是为了发送消息的实时性啊,怎么第6点用户发送消息还要通过网关服务,直接用长连接发送不好吗? 3.第2点中客户端通过外部路由服务来获取长连接的ip列表,这是通过http请求来下发的,而且客户端不止要IP也要端口吧,那么直接把长连接服务器的IP和端口都暴露给客户端会不会有安全隐患?
    共 1 条评论
    1
  • peter
    2022-03-15
    请教老师几个问题: Q1:长短连接的具体实现方式? 用Java语言,长、短连接具体是怎么实现的? New Socket()就是长连接吗?那短连接呢? Q2:长、短连接有框架吗? 长、短连接的管理,有框架吗?线程池有框架,长、短连接也应该有框架吧。 Q3:本设计有源码吗?有开源的IM源码吗? 本文中的设计,有对应的源码吗?应该是没有的,这样的话,请问有比较好的开源IM源码吗? Q4:长、短连接都可以通过http、https实现吗? Q5:CPU和内存的比例关系是经验公式吗? 文中有这句话:“CPU:因为接入层为 IO 密集型服务,所以 CPU 和内存的配比为 1:1,CPU 为 32 核”,请问这是一个经验公式吗? 如果是计算密集型服务,CPU和内存应该是什么比例关系?
    
    