服务器之间用redis发布/订阅来进行数据共享?
 发布于 7 年前  作者 quanpf2481  4331 次预览  最后一次回复是 7 年前  来自 问答 

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

11 回复
weizhuanhua

同想知道有没有好的思路

jeremy16601

干嘛不直接用mq

quanpf2481

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

quanpf2481

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

phper-chen

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

jinzhan1010

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

quanpf2481

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

jeremy16601

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

kzfile

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

dingyuanwu

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