问题标签 [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.
messaging - 通过端口监听和接收消息
我在 C# 中创建了一个 lanmessenger。而且我有通过端口接收和发送消息的代码,但我对如何使用它们有一个“轻微”的困惑。我是否应该不断调用监听每个事件中接收传入消息的端口的函数?.. 如果是这样,那么我如何调用发送消息的函数?
messaging - ActiveMQ 消息分发
我有几台从 Python 生成 xml 文件的服务器和一些使用 Java 使用这些 xml 的其他服务器。我最近才研究 JMS 和ActiveMQ并决定尝试使用它来传递 xml 文件。
所以我在消费者服务器上设置了 ActiveMQ 守护进程,并认为我会在产品上实现一些循环方法,以便将 xml 均匀地分布在消费者之间。
为了测试,我运行了一个生产者和一个消费者并查看了结果。
令我惊讶的是,来自生产者的消息分布在网络上的所有 ActiveMQ 服务器上。由于我只运行了一个消费者,它只接收到该机器上的 ActiveMQ 守护程序的 xml,其余的 xml 正在其他机器上的其他 ActiveMQ 守护程序上耐心等待。
编辑:这不是实际发生的事情,对不起。详情见下文
现在,我没有抱怨,因为无论如何这就是我想要的,但我有点困惑:实现我所追求的这个多对多队列的正确方法是什么?
我是否也应该在我的生产者机器上设置 ActiveMQ 守护程序,将 xmls 发送到 localhost ActiveMQs 并信任自动发现以将 xmls 发送给消费者?
为了安全起见,我应该坚持我原来的计划,并在消费者机器上循环消息吗?
或者是否有一个我应该使用的 API 来隐藏我的流程中的这些细节?
顺便说一句,生产者是使用 STOMP 的 python 进程,消费者是使用 JMS 的 java。
如果你的眼睛因我蹩脚的 ASCII 艺术而受伤,我深表歉意,我不确定我是否只用文字就足够清楚了。
编辑
显然,当我运行“一个生产者和一个消费者”时,我没有注意到其他消费者已经在运行。他们只是没有对他们处理的 xml 做任何有用的事情。这就是我看到部分结果的原因。
在阅读了更多内容并进行了一些实验之后,我发现了以下内容:
默认情况下,ActiveMQ 会自动发现本地网络上的其他 ActiveMQ 实例,并创建一个存储转发网络的 brokers。这意味着生产者可以将 xmls 发布到任何 ActiveMQ 实例,他们将找到自己的方式让消费者在同一网络上侦听其他 ActiveMQ 实例。
请注意,文档声称不建议将自动发现用于生产设置。
不过,下面接受的答案仍然适用。使用 ActiveMQ 最简单的方法就是使用一两个服务器作为“队列服务器”。尽管如此,我还是选择了我最初的计划,因为我认为它会减少网络流量(使用中间服务器,xmls 必须进入它并再次退出它)。
concurrency - 业务应用程序 - 使用消息传递的悲观并发
我们在我们的一个项目中使用消息传递来实现悲观并发。这意味着如果消息传递中断(通道中断),并发性就会下降。
- 这是在其他业务应用程序中完成的吗?
- 如果消息传递失败,您是否关闭应用程序(注销用户)?
我更多地考虑将乐观和悲观并发结合起来。那么如果悲观并发下降了,还有一个备用乐观并发......
谢谢,列文卡登
jms - ActiveMQ 消息分组性能
有人使用过 ActiveMQ 中的消息分组功能吗?
http://activemq.apache.org/message-groups.html
对于我正在从事的项目来说,这将是一个非常有用的功能,但我很好奇这个功能的扩展性和性能如何。在我们的系统中,我们需要将消息分组为大约 3-5 条消息的组,因此我们将在进程运行时不断添加组。在这种情况下,似乎我们最终会在尝试存储所有组时耗尽内存。
我对任何经验/想法/优点/缺点感兴趣。
.net - 我应该使用什么技术来实现可从 .NET 访问的持久订阅者?
假设是一个绿色项目,选择何种技术、库、中间件等可以最容易地在 Windows 和 .NET 上通过持久订阅实现发布-订阅消息传递?我使用 Google 找到了 WCF Peer Channel,这似乎可以满足我的大部分需求,但我认为它不能保证消息排序,也不能将消息持久保存到磁盘以确保可靠性。微软说这些功能可以叠加在上面,但我一直在寻找已经拥有它们的东西。
MSMQ 分发列表接近我想要的,但我更喜欢消息传递层不必预先知道所有客户端的东西。
订阅人数并不多,大概不到20人。
发布者和订阅者都在 C#/.NET 中实现并在 Windows 上运行。
编辑:我正在研究面向消息的中间件和服务总线建议。我熟悉这个领域的企业级产品——我真的在寻找简单轻巧的东西。查看每个产品需要一段时间,但我会尝试总结我的发现。
.net - 实现消息总线架构
我目前正在为我公司的新消息总线架构进行分析和设计。我过去曾尝试过 MSMQ 做类似的事情,它运行良好,并且正在考虑为这个项目再次做同样的事情,但使用 WCF 作为 API 而不是使用 System.Messaging API。有人在 WCF 中使用过 MSMQ 吗?比 System.Messaging API 更容易使用吗?在 System.Messaging 上使用 WCF 有什么好处,反之亦然?
message-queue - 关于消息传递/消息队列的经验法则
有人可以提供一些关于何时使用消息队列以及他们应该解决哪些实际问题的经验法则吗?
谢谢
wcf - 使用 netMSMQ 绑定的有序交付
使用 WCF netMSMQbinding 时是否可以保证有序交付?
我们在同一个队列中放置一个插入命令,然后是多个更新命令,有时其中一个更新会超过插入。
添加大量日志后,很明显它们以正确的顺序添加到队列中,并以不同的顺序进行处理。
我已经设法谷歌了几篇文章,指出这种行为是预期的,但似乎必须可以将其配置为以某种方式订购。
我们的队列是事务性的,所以我不认为在目的地添加序列号和重新排序会起作用,因为这会失去事务性
如果我添加属性[DeliveryRequirements(RequireOrderedDelivery=true, QueuedDeliveryRequirements=QueuedDeliveryRequirementsMode.Require)]
,我会收到以下错误:
合同“IService”上的 DeliveryRequirementsAttribute 指定了 NotAllowed 的 QueuedDeliveryRequirements 值。但是,此合同的配置绑定指定它确实支持排队交付。此合同不得使用排队绑定。
我不知道为什么会出现此错误,因为一切“似乎”都设置正确。我还没有找到任何确认 MSMQ 允许此设置,因为它似乎是 WS-RM 设置,并且 AFAIK netMSMQBinding 不支持 WS-RM。
architecture - 有人能解释一下消息代理的用途吗?
在我的工作中,很难在五分钟内没有人赞美 MQ 系列或 MSMQ 之类的优点,而且我总是想知道,在流行语的火花过去之后,这些出色设备的实际示例是什么?真实世界。
我正在寻找的东西可能会激发我找到其中一个的用途,或者给我一些我可以用来评估消息总线/消息代理/消息队列的指标——地狱,甚至可以解释的东西上述消息*事物之间有什么区别。
sms - 如何像 Twitter 那样发送 SMS 消息?
是否所有的手机公司都有开放的 API 允许您像 Twitter 一样发送 SMS 消息?
你需要付钱吗?