publish-subscribe相关内容

使用消息队列扩展 WebSocket

我已经构建了一个 WebSockets 服务器,它充当聊天消息路由器(即从客户端接收消息并根据客户端 ID 将它们推送到其他客户端). 要求服务能够扩展以处理数百万并发打开的套接字连接,并且我希望能够水平扩展服务器. 我想到的架构是将 websocket 服务器节点放在负载均衡器后面,这会产生问题,因为连接到不同节点的客户端不会相互了解.当客户端 A 和 B 都通过 LoadBalan ..
发布时间:2021-06-23 18:44:27 其他开发

Redis 发布订阅:Redis 是否保证即使在巨大压力下也能传递消息?

假设订阅的客户端和发布消息的服务器都保持连接,Redis 是否能保证最终始终将发布的消息传递给订阅的客户端,即使在客户端和/或服务器压力很大的情况下?或者我应该计划一下 Redis 可能会在事情变得“热"时偶尔丢弃消息的可能性吗? 解决方案 Redis 绝对不为发布和订阅流量提供任何保证交付.这种机制仅基于套接字和事件循环,不涉及队列(即使在内存中).如果发布发生时订阅者未在侦听,则此订阅 ..
发布时间:2021-06-23 18:44:16 其他开发

推荐的 Python 发布/订阅/调度模块?

来自 PyPubSub: Pypubsub 提供了一种简单的方法要解耦的 Python 应用程序它的组成部分:你的部分应用程序可以发布消息(使用或没有数据)和其他部分可以订阅/接收它们.这允许消息“发件人"和消息“听众"不知道每个其他: 一个不需要导入另一个 发件人不需要知道 “谁"收到消息, 听众将如何处理数据, 或者即使任何侦听器将获取消息数据. 同样,听众也无需担心 ..
发布时间:2021-06-23 18:44:10 Python

如何处理 Node.js 中的“读取 ETIMEDOUT"?

我有一个发布/订阅模型,使用 Node.js 将数据从一个客户端传输到另一个客户端.此外,服务器还会记录收到的所有内容并将其发送给新客户端. 但是,一些数据在传输时损坏了,我得到如下错误: 套接字错误!{ [错误:写入 EPIPE] 代码:'EPIPE',错误号:'EPIPE',系统调用:'写入'}套接字错误!{ [错误:读取 ETIMEDOUT] 代码:'ETIMEDOUT',错误号:' ..
发布时间:2021-06-22 20:33:38 其他开发

ZMQ:多个订阅者的 XPUB 套接字上没有订阅消息(最后值缓存模式)

我实现了 ZMQ 的最后一个值缓存 (LVC) 示例(http://zguide.zeromq.org/php:chapter5#Last-Value-Caching),但无法让第二个订阅者在后端注册. 订阅者第一次加入时,满足 event[0] == b'\x01' 条件并发送缓存值,但第二个订阅者(同一主题)不甚至不注册(if backend in events: 永远不会为真).其他一 ..
发布时间:2021-06-22 20:30:43 Python

如何在非父子反应组件之间共享数据?

在父子关系中的组件之间共享数据的过程在 React 文档中有详细记录并直接处理.不太明显的是如何在不共享子父关系的组件之间共享状态和任意数据的公认方式.Flux 是作为解决方案提供的,过去我已经推出了自己的发布/订阅系统,但在这个领域的 reactjs 开发人员之间似乎仍然存在很大分歧.RxJS 已作为解决方案提供,并且观察者模式有许多变体,但我想知道是否有更规范的方法来管理这个问题,尤其是在组件 ..

多个 NServiceBus 发布者可以共享同一个 DBSubscriptionStorage 吗?

查看发布-订阅 API 和配置页面,它会NServiceBus 用于跟踪订阅的数据库架构似乎只跟踪订阅者端点和消息类型. 我曾希望也许我可以更改表的名称以便为多个发布者使用相同的数据库,但是 这个帖子似乎表明你不能. 重点是 - 我完全理解并同意每个事件类型有一个发布者端点的概念 - 但这不可避免地导致多个发布者都在相同的应用程序范围内运行.也许在不同的组件或过程中运行,但这是一个有争 ..
发布时间:2021-06-09 19:55:34 C#/.NET

NServiceBus 如何从 1 个逻辑服务的 2 个物理位置发布消息

是否可以从部署到 2 个物理位置的 1 个逻辑服务发布消息? 配置文件会是什么样子?您不能在订阅者中添加消息 2 次.但如果您想订阅 2 个队列,则必须这样做. 解决方案 是的,很有可能.我们现在正在做.诀窍是拥有共享或复制的订阅存储.这是它的工作原理: 订阅请求(在订阅者的应用配置文件中定义)被发送到发布者的端点. 发布者将请求添加到其订阅存储中,该存储通常是一个关系数据库 ..
发布时间:2021-06-09 19:54:13 其他开发

配置端点以同时充当工作人员和订阅者

是否可以将端点配置为充当从分发者检索作业并订阅某种消息的工作者? 我有以下场景(适用于销售术语) *) 中央部门不时发布新价格清单.必须通知所有工人.这意味着,工作人员应该订阅此事件. *) 当一个新订单到达中央时,它会将其发送给分发服务器,分发服务器将其发送给下一个空闲的工作人员进行处理.这意味着,必须将工作人员配置为从分发服务器接收消息.我使用以下配置: 当我仅将其配 ..
发布时间:2021-06-09 19:53:36 其他开发

SQL Server 2008 表更改(插入/更新/删除)通知推送到代理

我有一个相当复杂的大型数据库,其中包含大约 3000 多个对象(表/触发器/sps 组合).我继承了这个数据库并重组它可能需要 3-4 年的时间.同时,我需要为这些表上的任何插入/更新/删除实现一个 pub sub 功能.给定数量的表和现有查询可能查询通知(和 SQL 依赖项)将不起作用.我正在寻找的是一种在服务代理上推送更改(表中更改的内容 - 例如记录 PK 和表名称)的方法,以便我可以使用外 ..

在 SiganlR 中处理并发连接

我正在使用 .Net 框架 4.5.2,我将开始制作一个通知系统,该系统将来自 Web 应用程序的通知发送到从 Windows 窗体桌面应用程序连接的用户中. 经过调查,我发现合适的解决方案是使用 signalR,因为它支持在将通知发送到连接的客户端之前过滤通知. 但我担心的是:当我在 Web 应用程序中创建我的 HUB 类时,我实现了 OnConnected 方法,该方法将检测连接到 ..

为什么我不能有一个 Redis 客户端充当同一连接中的 PUB 和 Sub?

我的心智模型是“聊天",我订阅了某个频道,我可以向该频道发布消息. 解决方案 由于 pub/sub 是异步的,发布的消息可能会在任何时候出现,包括在您期待对命令的响应时. 尽管 redis 是单线程的,这通常可以防止这种事情,但网络延迟会导致一些有趣的影响 - 根据消息的内容,您可能会在服务器实际收到命令之前收到对命令的有效响应. 也就是说,如果您真的想要,您可能可以使用单个连 ..
发布时间:2021-06-08 19:02:47 其他开发

python Mqtt订阅如何删除第一个会话/消息

我使用具有 HA 作为代理的 python 创建了一个 Mqtt 订阅......当我建立第一个连接时,我开始一系列我连接的所有 mqtt 按钮的消息,即使我没有激活它们,因为我的订阅是“房子"/点击/# ".列表完成后……如果你按下一个按钮,我就会开始收到我需要的消息……有没有办法删除它给我的第一个列表. 这是我使用的代码: 导入 paho.mqtt.client 作为 paho将熊猫导 ..
发布时间:2021-06-04 18:37:45 其他开发

使用 publishComposite 加入 Meteor

我已经从我的 Meteor 应用程序中删除了 autopublish.现在我正在手动发布我的收藏.我有一些相关的收藏.我想尽可能提高性能. 例如,如果我正在查看一个帖子并想查看与该帖子相关的所有评论,我必须使用 post: Posts.findOne(postId) 查询数据库AND comments: Comments.find({postId: postId}).我正在使用 iron-r ..
发布时间:2021-06-03 20:33:39 前端开发

流星发布:隐藏数组文档字段中的某些字段?

我有一个包含以下文档的集合: {_id: af3F3afafaa,名字:“约翰",家庭:[{姓名:“大卫",关系:“兄弟",活着:真实},{名称:“苏珊",关系:“母亲",活着:假}]} 有没有办法编写一个隐藏家庭字段数组中的字段的出版物?因此,如果我订阅了该出版物,我会得到: {_id: af3F3afafaa,名字:“约翰",家庭:[{名称:“大卫",活着:真实},{名称:“苏珊",活 ..
发布时间:2021-06-03 20:20:36 其他开发

如何控制两个订阅显示在一个模板中?

抱歉,对 Meteor 框架有点陌生! 我订阅了两个发布功能.即使两个发布函数都针对同一个集合,但它们都有不同的函数,我想在一个模板中显示这些函数.我如何实现这一目标.我已经做了大量的研究,但似乎没有足够的信息来说明如何实现. 以下是我订阅的代码中的两个发布函数: .server/main.js: Meteor.publish('MerchantTrending', funct ..
发布时间:2021-06-02 21:09:52 其他开发