现有方案是 mqtt 服务器。 但是今天仔细看了了一下 redis7 的 acl 控制。感觉权限可以缩小到很小 。另外 Stream 结构可以直接用 redis 解决消息持久化的问题。 所以在琢磨用 redis 直接做 mq 服务器。不再经过 mqtt 转发一次浪费性能。 直接给每一个用户的客户端分配一个 redis 账号,账号定时横换。
因为用户的客户端不可信,有几个问题不知道如何解决,独立的临时账号解决了客户端的安全问题,那么主要是客户端的资源占用的限制上。
- 1 、怎么限制客户端的请求频率,用 iptable 来限制?
-
2 、怎么限制单个用户的占用的内存。
目前想到的- 2.1 、client-query-buffer-limit 限制输入缓冲区
- 2.2 、后端不断执行 CLIENT LIST 踢掉占用太大的用户?
- 2.3 、怎么限制同一个用户重复登陆 redis ?只能定时用 CLIENT LIST 去扫描吗
暂时只想到这些,恳求各位赐教!