问题标签 [messaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2864 浏览

c# - C# 客户端到客户端消息传递

我将尝试准确地解释我首先想要实现的目标。

想象一下,两个用户正在使用一个 Windows 窗体应用程序,当用户 A 打开一个特定的窗体时,会将一个锁应用于窗体底层的数据记录,以便当时只有该用户可以进行更改。

用户 B 有一个所有记录的列表(在网格中),其中包含对用户 A 已经打开的记录的引用。我们想要做的是当用户 A 打开记录时,用户 B 的记录列表被更新以显示行旁边的锁定图标表示该记录正在使用中。

这是我们处理消息传递的一个简单示例,但您明白了,用户 A 做了用户 B 需要知道的事情。

我已经使用 Jabber-net for C# 和 OpenFire Jabber Server 实现了一个系统。基本上,当要发送消息时,会在数据库的消息表中插入一个新行。消息表由使用 SqlDependancy 对象的服务客户端监视,因此当新消息准备好时,服务构建相关消息并通过 Jabber 和 OpenFire 服务器将其发送到所需的客户端。

这工作正常,但是 OpenFire 的开箱即用功能是支持即时消息,这显然不是我想要实现的。我遇到的问题是,如果用户登录到两个应用程序上下文(即测试和实时),OpenFire 不知道要向哪一个发送消息,因为 user@server/resource 的 JID 结构不会注意到资源。

基本上我目前使用 OpenFire 和 Jabber-net 的方式不太正确。

是否有一种模式可以用来实现我想要实现的目标,即向客户端发送消息,告诉它做某事,同时能够指定您也发送消息的客户端。XMPP 似乎是答案,因为我可以构建自己的要解析的消息类型。

我的应用程序是一个 Windows 窗体、.NET 3.5 C# 应用程序。

0 投票
4 回答
1915 浏览

java - 用于 Java Web 应用程序的嵌入式消息传递组件

为了满足客户的要求,我们需要让用户相互交换信息。“消息系统”没有复杂的后端要求,可以通过几个表轻松实现来存储消息和消息类型。

问题是我认为对前端的要求很高,可用性很重要。此外,我希望这种通信部分从长远来看会成为系统的重要组成部分。

是否有任何东西可以直接集成到 Java Web 应用程序中并适应应用程序的设计?我们需要的是如下界面

从服务层:

  • 向用户发送消息(标题,主题)
  • 回复消息
  • 用户收件箱中的新消息通知(如果可能:在当前页面上)
  • 与现有用户管理的接口

最好,该组件应该已经有一个具有以下功能的前端:

  • 消息管理(选择、删除、回复、删除/恢复,...)
  • 文件夹:收件箱、已发送、垃圾箱
  • 标记:消息类别
  • 在面板/div 中显示最后x条消息
  • 样式看起来像应用程序

如果有一些相当稳定的东西,我宁愿在应用程序中实现这样的东西之前使用一个组件。该应用程序在 Wicket 上运行,但我们并未绑定到消息传递组件的此框架。

谢谢你,卡里姆


在门户服务器中,您可以灵活地添加可以执行与我正在寻找的组件类似的操作的 portlet;例如Liferay提供邮件留言板portlet。

正如akf在评论中指出的那样,Jabber为消息传递提供了坚实的基础。我们正在寻找可以集成到 Web 应用程序中的东西。如果我们必须围绕 Jabber 构建大量 UI,我们不能真正认为它非常适合我们的要求。

0 投票
1 回答
1268 浏览

python - 骡子与 Python 的 ActiveMQ

我需要管理几台服务器、网络服务、应用服务器(Apache、Tomcat)并管理它们(启动停止、安装软件)。

我想使用 Python,因为 C++ 似乎很复杂,而且对于事物任务的效率较低。我不确定要使用哪个中间件。ActiveMQ 和 Mule 似乎是一个不错的选择,尽管它们是用 Java 编写的。我对 ActiveMQ 了解得更好,但我对 ESB 知之甚少。

有什么建议吗?Python有什么选择吗?

我看到有beantalk,但是太简单和不灵活。我需要一个用于协调的消息系统,以及一种将 tar.gz 文件发送到服务器(软件包)的方法。

我当时有一个 Python 原生的消息传递解决方案。

0 投票
2 回答
2910 浏览

.net - 消息处理的管道模式

我有一组位于队列中的服务(非 WCF)。当消息到达时,典型的服务会进行一些计算并将零个或多个结果消息输出到其输出队列。除了其主要功能外,每个服务都有一些管理逻辑,如身份验证/审计/日志记录/状态跟踪,确切的步骤和顺序在服务之间有所不同。这就是管道概念进入画面的地方。

我对我们最终得到的设计不满意,并寻找简化它的方法。我应该模仿 CCR 端口吗?ASP.NET 管道?奥普?还要别的吗?

我目前的设计如下:我有一个IMessageHandler<TMessage>接口和大约 15 个实现,它们使用 IoC 以 6 种独特的方式链接在一起。该接口定义了单个方法Handle(TMessage msg),因此每个实现都可以在将消息传递给菊花链中的下一个处理程序之前和之后执行一些逻辑。

这样做的问题是:很难记住每个实现究竟做了什么,以及为什么它们以这种特定的方式链接到这个特定的服务。另一方面,将每个方面放在自己的类中可以更好地分离关注点,从而更容易进行单元测试。

想法?我可以查看任何好的管道模式吗?我可以用作参考的任何不错的管道实现?还是我应该JFHCI

0 投票
1 回答
984 浏览

java - Mule 聚合器 - 流式聚合

Mule 2.0 框架中使用的集合聚合器有点像这样:

  • 入站路由器接收一组消息并将其拆分为许多较小的消息 - 每个较小的消息都带有对应于父消息的相关 id

  • 这些消息流经各种服务

  • 最后,这些消息到达一个入站聚合器,该聚合器根据父消息的相关 id 和预期消息的数量收集消息。一旦收到所有预期的消息,就会调用聚合函数并返回结果。

现在,当组中的消息数量相当少时,这可以正常工作。然而,一旦一个组中的消息数量变得巨大~100k,那么就会有很多内存被占用来等待后面的消息到达的消息组。如果同时聚合多个组,情况会变得更糟。

解决此问题的一种方法是实现流式聚合器。在我的用例中,我基本上是基于一个键来总结各种消息,这可以在不必同时查看组中的所有消息的情况下完成。我只想知道在将结果转发到端点之前已收到所有消息。

这听起来像是解决问题的合理方法吗?

这是否已经在 Mule 的某个地方实现了?

有没有更好的方法来做到这一点?

0 投票
5 回答
2522 浏览

c# - 设计帮助——多态事件处理

设计问题——多态事件处理

我目前正在尝试减少当前项目中事件句柄的数量。我们有多个通过 USB 发送数据的系统。我目前有一个例程来读取消息并解析初始标头详细信息以确定消息来自哪个系统。标头有点不同,所以我创建的 EventArgs 不一样。然后我通知所有“观察者”这一变化。所以我现在拥有的是以下内容:

Form1 代码

在解析算法中,我有这样的东西,基于它是哪条消息:

我真正想做的是:

由于模棱两可的原因,我们不能这样做。所以我的问题是什么是解决这个问题的更好方法?

0 投票
4 回答
20815 浏览

events - 如何使用 RESTful Web 服务创建异步通知系统?

我有一个通过 RESTful Web 服务提供的 Java 应用程序。我想创建一种机制,以便客户端可以注册事件通知。问题是无法保证客户端程序是 Java 程序,因此我将无法为此使用 JMS(即,如果每个客户端都是 Java 应用程序,那么我们可以允许客户端订阅 JMS 主题并在那里收听通知消息)。

用例大致如下:

  1. 客户端通过 RESTful Web 服务调用向我的服务器应用程序注册自己,表明它有兴趣在任何时候更新特定对象时获取通知消息。
  2. 当感兴趣的对象更新时,我的服务器应用程序需要向所有有兴趣收到此事件通知的客户端发出通知。

正如我上面提到的,我知道如果所有客户端都是 Java 应用程序,我将如何做到这一点——设置一个客户端可以收听通知消息的主题。但是我不能使用这种方法,因为很可能许多客户端将无法收听 JMS 主题以获取通知消息。

这里的任何人都可以告诉我这个问题通常是如何解决的吗?我可以使用 RESTful API 提供什么机制?

0 投票
3 回答
8157 浏览

messaging - 避免脑裂、投票和法定人数

假设您有 n 个进程,n > 2。您希望它们之间达成一致,即其中一个是活动的。所以他们需要互相投票来决定哪一个是活跃的。

所有进程都可能随时失败,如果可能,我们希望有一个进程处于活动状态,但是......

我们不能同时有两个活动,所以如果他们不能确定最好没有一个活动。(即,我们要避免脑裂)

它们之间唯一可用的通信机制是发布-订阅消息(不是点对点)。

有一个或多个数据库可用,但没有一个数据库应该是单点故障。IE。如果所有进程都可以工作,并且由于丢失单个数据库而无法这样做,那将是非常不可取的。

设计?需要发布哪些消息?

0 投票
2 回答
2031 浏览

jms - 消息队列:网络故障时消息是否丢失?

我想知道消息传递系统中消息传递的可靠性,例如 WebsphereMQ 或 ActiveMQ(通过 JMS 使用)。据我所知,如果收件人不可用,则可以缓冲消息,稍后再发送。

现在我想知道如果发件人暂时无法访问网络会发生什么。是否有某种本地缓冲稍后会发送消息?我认为这取决于消息代理的运行位置。所有机器上都有本地代理还是只有一个中央代理?

明确我的问题:如果我需要确保最终收到消息,即使面对暂时的网络故障,消息传递系统是否是正确的选择?是否需要某种设置来实现这种可靠性?

任何指向相关文档的指针将不胜感激。

0 投票
3 回答
607 浏览

architecture - 您如何评估/评估消息传递架构?

我正在开展一个项目,该项目依赖于与 SMS/MMS 消息聚合器公司的集成,以便将应用程序部署到手机以及通过 SMS 执行移动支付。这种架构中的许多概念与企业集成和 SOA 世界中的消息传递模式密切相关。我目前正在评估不同的 SMS 消息传递供应商,并想知道架构师在消息传递体系结构中是否有一些特殊标准需要关注。

我的方法是使用架构“ilities”(性能、可用​​性、可扩展性、安全性等)来为每个供应商的系统建立一个评分模型。但是,在与此类架构集成时,是否有人推荐其他方法或标准来寻找?

谢谢一堆。