• WL
    2019-06-29
    请问一下老师两个问题:
    1. 我没太理解websocket协议实现可伸缩性性引入消息分发系统的目的是因为无法增加接入server的数量而只能增加实现server的数量吗?
    2. 在网络效率和无状态上, 为啥请求1与请求2无状态就要传递大量的重复消息呢? 为啥请求2要基于请求1, 如果不基于请求1, 请求2会受到什么影响吗?

    作者回复: 1、这里是指,如何多个SERVER服务于一个长连接。
    2、例如,同一连接上请求1是html,请求2是css文件,那么请求1中携带了user_agent,这样请求2是不用携带user-agent的。 所谓“基于”是指业务依赖,比如请求1是登录,请求2是用户信息列表展示

    
     1
  • 江龙
    2019-08-05
    正在业务有用到ws,看了下还是挺有收获,说下理解及问题
    1. 基于ws接入层+消息系统,这样server层就可以很方便动态伸缩机器,达到跟rest请求类似效果;
    在push推消息的情况下,server层就需要通过广播的方式通过消息系统传递给接入层,接入层再通知client,由于是广播方式(长连接,client1连接到access1,client2连接到access2,只有广播才能通知到所有client),所以如果push的消息量很大,那是否需要对接入层根据消息类型进行分集群部署?这样能减少广播通知的消息数量
    2. 可见性不是很好理解,这里老师的解释是请求2需要依赖其它的才能得到完整的信息,那是否就是这种请求就是有状态的了
    3. ws连接只能通过ping/pong方式保活吗?业务定时10秒发送一次业务消息是否也能达到这个目的?
    展开
    
    
  • WL
    2019-06-29
    还有一个问题: websocket协议没定义元数据放在哪里和需要我们自己定义元数据是啥意思, 是说需要我们在程序中把元数据写到TCP的报文里面吗?

    作者回复: 比如Content-Type,描述DATA是视频还是音频,这就是元数据。这里我是基于第一部分描述REST架构时的思路,HTTP/1协议里就含有了元数据。

    
    
我们在线,来聊聊吧