采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
第七章中,将conn和userid的对应关系存放于本地的map中便于管理,如果ws服务是多个实例,在这种场景下,该怎样去协调链接和userId的对应关系呢?业务该怎么优化呢?
嗯嗯看到了。有一个小问题,服务端的这段转发代码是否是必要的呢?func (s *Server) SendByUserId(msg interface{}, uIds ...string) error { if len(uIds) == 0 { return nil } conns, noExistUids := s.GetConns(uIds...) err := s.Send(msg, conns...) if err != nil { return err } return s.serverOption.discover.Transpond(msg, noExistUids...) } chat是通过mq解耦的,是否可以只在mq推送消息给ws server时增加转发逻辑(也就是只在ws的client端增加转发的逻辑),这样的话如果一个ws server收到消息,则该server上就一定存在ws conn ,所以ws server端就不用在增加转发逻辑了。
在我们目前的流程上,已经为client增加了转发,因此在mq中使用client的时候就会转发相应的服务。 而在server中的转发应client转发相应应用较少,它适合于在没有使用mq流程的时候。
登录后可查看更多问答,登录/注册
轻松应对复杂应用微服务设计,高效实践容器化组件管理
294 8
301 7
250 6
291 6
310 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号