我正在使用 websockets 和 redis pub/sub 实现一个实时通知系统。基本上,客户端通过 websockets 连接到服务器,并且从后端我订阅了 Redis 实例的特定 Redis 通道,因此我可以为客户端提供从该通道到达的所有消息。不过,我有点担心这个的可扩展性,如果我需要多个 Redis 实例怎么办?也就是说,系统的不同组件根据发生的某些事件向 Redis 通道发送消息,但是如果有多个 Redis 实例并且我不知道哪个客户端感兴趣,我如何知道应该将其发送到哪个 Redis 实例它链接到哪一个?
使用 Redis 7.0,您可以使用 sharded pubsub 功能 进行扩展。
您可以将不同的事件发送到不同的通道,并让不同的消费者监听不同的通道来处理事件。