为了账号安全,请及时绑定邮箱和手机立即绑定

维护打开的 websocket 连接列表的最佳方法是什么?

维护打开的 websocket 连接列表的最佳方法是什么?

Go
慕码人8056858 2021-09-09 21:04:52
我想向通过 websocket 连接到我的每个客户端发送消息流(Go 中的通道)。每大约 100 毫秒发送一条新消息。我如何维护一个打开的连接列表,其中连接一直被打开和关闭,同时必须对该列表进行某种迭代以发送超过 50,000 个连接的消息?现在我将连接存储在与单个互斥锁同步的地图中,但我不确定这是否可以缩放。
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

这个问题可以更笼统地表述:你有一个值的集合。您需要迭代集合,添加到集合中并从高并发的集合中删除。

我将从您的建议开始:使用受互斥锁保护的映射。

如果您发现互斥锁上存在高争用,则考虑使用锁条带化。这是您使用 N 互斥锁和映射对的地方,其中该对是通过键的散列选择的。


查看完整回答
反对 回复 2021-09-09
  • 2 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信