草庐IT

publish-subscribe

全部标签

ruby-on-rails-4 - 无法处理 SSE 中断开连接的客户端

我正在尝试使用RedisPubSub将SSE功能添加到我的服务器应用程序中,并引用了许多文章,即:how-to-use-actioncontollerlive-along-with-resque-redis.服务器托管在Heroku中,因此心跳也是必需的。...sse=SSE.new(response.stream)beginredis=Redis.new(:url=>ENV['REDISCLOUD_URL'])redis.subscribe(,HEARTBEAT_CHANNEL)do|on|on.messagedo|channel,data|beginifchannel==HEART

python - 使用 Python 订阅模式 Redis

我正在尝试开发一个基于Python和Redis的通知系统。我一直在检查pythonredismodule我看到了一个小模式订阅示例:p.psubscribe('my-*',...)理论上是这样的,所以我尝试了类似的东西importredisimporttimer=redis.StrictRedis(host='localhost',port=6379,db=0)p=r.pubsub()p.psubscribe('*')formsginp.listen():printtime.time(),msgtime.sleep(0.001)我正在尝试订阅每个键以使示例最简单。但是,我一开始只收到此

Redis Pub/Sub 当 sub 是自动缩放组的一部分时

我正在查看Redispubsub,消费者是2-4节点自动缩放组的一部分(HA原因)也许我遗漏了一些明显的东西,但是Redispubsub中是否有某种机制可以管理订阅者/消费者收到的重复项? 最佳答案 不,也不能保证一定会收到消息。您可以在客户端添加逻辑。(对您的消息实现序列号/id,以及确认机制) 关于RedisPub/Sub当sub是自动缩放组的一部分时,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

node.js - 带有 Redis 消息队列的 NodeJS - 如何设置多个消费者(线程)

我有一个nodejs项目,它为外部web应用程序公开了一个简单的restapi。此webhook必须每秒处理大量请求,并非常快速地向调用方返回200OK。为了实现这一点,我调查了一个redis简单队列,该队列与每个请求一起排队,稍后将异步处理(通过消费者线程)。redis简单队列似乎是完成此任务的简单方法(https://github.com/smrchy/rsmq)1)rsmq.receiveMessage(){.......}是阻塞方法吗?如果此处理程序很慢-它会影响我的服务器的性能吗?2)如果问题1的答案为真-是否建议将消息​​的消费提取到外部微服务?(一个专门的消费者)?在这种

redis - Message Broker 的粘性 session

我正在从事一个项目,我们正在尝试利用消息代理,在类型消息开始发送给给定消费者后,它会继续发送给该消费者。这与rabbitmq中的直接交换基本相同——除了key是动态的。以下是我正在寻找的内容的更详细描述:想象一下有多个生产者和多个消费者的情况。生产者正在发送多条消息,这些消息应该被某种类型的整数分解。具有任何给定整数的任何消息将始终发送给同一消费者。所有类型5的消息都将转到处理消息5的消费者。但是,整数可以是任何数字。没有预定义将有多少种消息类型。因此,此设计需要支持X个生产者、Y个消费者和Z个消息类型,并且任何给定的消息类型必须始终路由到相同的消费者。我对消息代理有点陌生,如果我使用

Node.js Redis 订阅回调未执行

我正在构建一个应用程序,我在其中使用2个服务(API网关和通知)之间的Redis连接。对于这个连接,我使用了Redis的pub/sub方法。我使用的库称为NRP。问题是我可以将数据从API网关传递到通知,但API网关没有接收到我需要返回的数据。想象一下我想登录,然后API网关将用户名和密码发布到通知中。在通知中,所有登录逻辑都已完成,当一切正常时,我向API网关发回一条消息。来自API网关的代码(其中subchannel和pubchannel作为函数的参数提供):{returnnewPromise((resolve,reject)=>{try{this.sub.Subscribe(su

Redis Pub/Sub 不保留消息

我正在使用RedisPub/Sub实现在两个项目之间交换消息。我有几个channel订阅同一个队列。当发布者和订阅者都在运行时,一切都会顺利进行。当我只有发布者在工作(并且发布了很多消息)时,我希望订阅者启动时,它会读取之前排队的所有消息。但是如果没有订阅者,Redis不会保留消息。是否可以使用任何配置来保留消息,直到订阅者将它们出列? 最佳答案 Redis目前的行为不像具有“保留”标志的MQTT代理。如果订阅发生在消息发布之后,订阅者将永远错过订阅。 关于RedisPub/Sub不保留

redis - 我可以发布和订阅的 channel 的最大限制是多少?

我有一个要求,我想将数据发布到超过100,000个channel,订阅者将订阅他们想要的任何channel。所以我想知道Redis上可用的channel数量是否有硬性限制?如果我想通过所有channel和channel订阅者对Redis的性能进行基准测试,有没有我可以使用的可用工具? 最佳答案 SoIwanttoknowisthereahardlimittothenumberofchannelsthatcanbeavailableonRedis?在实践中,没有限制。您可以拥有尽可能多的channel,直到内存已满。

docker - vertx EventBus 能否用作聊天应用程序的 "Redis Pub/Sub"

我在react.js中开发了一个带有node.js后端和redis的聊天应用程序-pub/sub用于在不同的docker部署之间同步消息以进行扩展。我是Vert.x的新手,正在尝试移动我的chatapp对于Vert.x,我发现vert.x有事件总线,我可以在不同的Docker中的不同Verticle之间发布和订阅消息。请提供您宝贵的意见.. 最佳答案 这是一个有点自以为是的问题,但我会尽力回答。您需要了解的是,集群EventBus并不是某种魔法。ClusteredEventBus只是Hazelcast等解决方案之上的抽象。它使用发布

node.js - 在多个 Node 实例中使用 Pub-Sub 进行广播

我想要Node服务器“A”和“B”的两个实例。'A'将在房间中推送连接的客户端[使用socket.io]。“A”将发布“B”已订阅的事件。从“A”接收到该特定事件后,实例“B”将在给定房间内广播一条消息。想使用socket.io的Room特性想问一下,可以吗?我正在尝试使用Redis存储,但不知道如何发布事件以便服务器“B”接收它。 最佳答案 您可以运行2个redis实例,一个在服务器A上,一个在服务器B上。如果你将A上的地址绑定(bind)到*或者127.0.0.1,B的IP,你可以要求服务器B成为A的从属:slaveof6379