草庐IT

publish-subscribe

全部标签

node.js - Redis 发布/订阅 vs Node 事件发射器

我不确定我是否真正理解使用redispub/sub和使用node/express事件发射器之间的区别。发布/订阅是否以任何方式与我的数据库交互?在什么情况下我会使用一个而不是另一个? 最佳答案 Redis允许您构建快速而强大的进程间通信。Redis发布/订阅使用您的Redis进程来传递您的消息,但它绝不会影响存储在Redis数据库中的数据。事件发射器仅在单Node进程中工作。因此,即使您只有一个Node集群,一个工作人员发出的事件也不会被另一个工作人员看到。因此,事件发射器是进程内通信的完美选择。但是如果你需要进程间通信,你应该使用

node.js - Redis 发布/订阅 vs Node 事件发射器

我不确定我是否真正理解使用redispub/sub和使用node/express事件发射器之间的区别。发布/订阅是否以任何方式与我的数据库交互?在什么情况下我会使用一个而不是另一个? 最佳答案 Redis允许您构建快速而强大的进程间通信。Redis发布/订阅使用您的Redis进程来传递您的消息,但它绝不会影响存储在Redis数据库中的数据。事件发射器仅在单Node进程中工作。因此,即使您只有一个Node集群,一个工作人员发出的事件也不会被另一个工作人员看到。因此,事件发射器是进程内通信的完美选择。但是如果你需要进程间通信,你应该使用

websocket - 带有云上发布订阅的套接字集群

我正在创建一个传输层作为webApp的前端。用户可以通过移动应用程序和浏览器进行连接。传输层是多个应用程序的前端,包括聊天应用程序、多页面Web应用程序、通知和电子邮件服务器。规模约为4000个并发用户。少数场景不同的服务可能还需要相互交互。例如,聊天服务器可能会发送电子邮件。我正在为这个传输层寻找最佳设计。整个系统需要部署在云端,但需要独立于供应商。我的设计:1.通过NettoSphere(https://github.com/Atmosphere/nettosphere)或带有FallBacks的Netty创建套接字以进行HTTP轮询。2.将套接字层与Redis之类的Pub/Sub

websocket - 带有云上发布订阅的套接字集群

我正在创建一个传输层作为webApp的前端。用户可以通过移动应用程序和浏览器进行连接。传输层是多个应用程序的前端,包括聊天应用程序、多页面Web应用程序、通知和电子邮件服务器。规模约为4000个并发用户。少数场景不同的服务可能还需要相互交互。例如,聊天服务器可能会发送电子邮件。我正在为这个传输层寻找最佳设计。整个系统需要部署在云端,但需要独立于供应商。我的设计:1.通过NettoSphere(https://github.com/Atmosphere/nettosphere)或带有FallBacks的Netty创建套接字以进行HTTP轮询。2.将套接字层与Redis之类的Pub/Sub

Redis 通知

我正在使用Redis作为分布式缓存。我有不同的应用程序,它们只听特定的键。例如:App1听App1.*App2监听App2.*等等。我的应用程序使用以下模式接收通知:App1:“key*:APP1。”App2:"key*:APP2."我只需要发送有关设置、删除、过期、驱逐事件的通知,这就是我尝试使用通知键空间事件“AK”的原因。如果对我来说工作正常,但在这种情况下,“AK”配置redis开始发送我不需要的额外通知,如“过期”。所以根据文档http://redis.io/topics/notifications我试图实现自定义属性:notify-keyspace-events"Ksxe"

Redis 通知

我正在使用Redis作为分布式缓存。我有不同的应用程序,它们只听特定的键。例如:App1听App1.*App2监听App2.*等等。我的应用程序使用以下模式接收通知:App1:“key*:APP1。”App2:"key*:APP2."我只需要发送有关设置、删除、过期、驱逐事件的通知,这就是我尝试使用通知键空间事件“AK”的原因。如果对我来说工作正常,但在这种情况下,“AK”配置redis开始发送我不需要的额外通知,如“过期”。所以根据文档http://redis.io/topics/notifications我试图实现自定义属性:notify-keyspace-events"Ksxe"

Redis PUBLISH 和消息顺序

如果两个不同的客户端在同一个channel上进行PUBLISH,我是否可以假定通知订阅者的顺序将得到遵守?所有订阅者收到第一个PUBLISH消息然后所有sunbscribers收到第二个?由于redis是单线程的,所以它应该是单线程的,但我想确保它不会并行处理两个PUBLISH。 最佳答案 是的,PUBLISH是一个同步命令。在将消息推送给所有订阅者之前,它不会返回。并且不同的PUBLISH命令在Redis请求队列中自然序列化。Timecomplexity:O(N+M)whereNisthenumberofclientssubscr

Redis PUBLISH 和消息顺序

如果两个不同的客户端在同一个channel上进行PUBLISH,我是否可以假定通知订阅者的顺序将得到遵守?所有订阅者收到第一个PUBLISH消息然后所有sunbscribers收到第二个?由于redis是单线程的,所以它应该是单线程的,但我想确保它不会并行处理两个PUBLISH。 最佳答案 是的,PUBLISH是一个同步命令。在将消息推送给所有订阅者之前,它不会返回。并且不同的PUBLISH命令在Redis请求队列中自然序列化。Timecomplexity:O(N+M)whereNisthenumberofclientssubscr

scala - 发布/订阅中的 Redis 插件阻塞

我正在尝试使用TypesafeRedisPlayplugin连接到Redis以进行发布-订阅.我有以下测试场景,由一个每秒生成消息的actor组成://InitializationhappensinApplication.scala,privatelazyvalfakeStreamActor=Akka.system.actorOf(Props[FakeStreamActor])valactorPut=Akka.system.scheduler.schedule(Duration(1000,MILLISECONDS),Duration(1000,MILLISECONDS),fakeStr

scala - 发布/订阅中的 Redis 插件阻塞

我正在尝试使用TypesafeRedisPlayplugin连接到Redis以进行发布-订阅.我有以下测试场景,由一个每秒生成消息的actor组成://InitializationhappensinApplication.scala,privatelazyvalfakeStreamActor=Akka.system.actorOf(Props[FakeStreamActor])valactorPut=Akka.system.scheduler.schedule(Duration(1000,MILLISECONDS),Duration(1000,MILLISECONDS),fakeStr