服务器之间用redis发布/订阅来进行数据共享?
发布于 5 年前 作者 quanpf2481 3210 次浏览 来自 问答

现在遇到这样的一个问题,某一台服务器产生数据,要给其他的服务器使用,我现在的思路是使用redis的发布/订阅功能来共享数据,不知道这样的效果怎么样??有没有大神用过,求指点迷津,或者有其他的思路,也可以,感谢!!!

11 回复

同想知道有没有好的思路

干嘛不直接用mq

@jeremy16601 能否详细一点呢?谢谢!!

@Gitforxuyang 能否详细说一下呢??或者给个参考的例子也可以啊,谢谢!!!

生产消费 方案很多 redis发布订阅不太合适 占连接资源时间太长 使用redis队列消费吧 A服务器生产数据丢到list里面 其他服务器来读进行消费 如果要区分多个服务器和区分业务种类 那就用多个队列把业务隔离开

原生的pub/sub有丢失数据的风险

@jinzhan1010 怎么样来减少这样的风险呢???

@quanpf2481 rabbit mq ,消息队列就行啊,可以给mq做个负载

redis这个就是理论上存在丢数据的问题. 新的redis 5不是有stram吗,不过研究的不多. 我现在是用rabbit mq,每个node服务订阅一个商量好的queue,其中有生产者,消费者. 生产者生成数据,消费者消费数据.

用于订阅的redis Client的连接会被一直占用,所以订阅的redis Client只能用于接收消息,不能做其他的事情,发布的Client没有限制。我们使用的是Node的ioredis的电放库来实现的https://www.npmjs.com/package/ioredis

回到顶部