当前位置: 首页 > 知识库问答 >
问题:

在使用Apache ActiveMQ时混合协议

牟嘉
2023-03-14

我正在探索ActiveMQ,以便在基于不同技术(C、Java、Ruby和Python)的异构应用程序之间实现高级消息传递。在查看受支持的协议时,我无意中理解了在执行消息交换时混合协议的用例。我搜索了ActiveMQ文档,但找不到任何关于这方面的参考资料。

我的问题是-

生产者(NewsPublisher)正在使用AMQP将新闻(体育、金融、世界)发布到主题(NewsTopic)。发布后,此主题将这些新闻存储在各自的队列(体育、金融和世界队列)下。在这种情况下,订阅体育队列的客户端基于JMS,订阅金融队列的另一个客户端基于Stomp;这些客户端是否能够接收NewPublisher使用AMQP发布的队列上可用的消息?

我看到之前发布的一个有点相关的问题,但发现答案与原始问题无关,因此认为需要再次检查。

共有1个答案

宗政招
2023-03-14

在ActiveMQ中混合协议并不难,代理负责所有内部路由和将消息从传入协议转换为传出位,因此您不必太担心。

您必须关注的是客户端组合允许您使用的消息类型的公分母。在您的问题中,您列出了三种不同的协议AMQP、OpenWire和STOMP(我猜您指的JMS是使用OpenWire的ActiveMQ JMS客户端)。

在这个混合模式中,STOMP是一个开始,因为它为消息负载(文本和二进制)提供了最少的选项,所以您需要从这里开始。你能把信息限制在这两个域吗?要从JMS客户端发送到STOMP,则可以将自己限制为JMS文本消息和或JMS字节消息。在AMQP中,您还需要将消息有效负载限制为二进制的基于文本的有效负载(想想包含一个封装字节数组的二进制的数据部分)。

ActiveMQ的STOMP协议处理html" target="_blank">程序确实提供了一些选项来进行其他类型的消息转换,例如将MapMessage转换为基于JSON的字符串有效负载,但最好从简单开始并按自己的方式进行。

鉴于主题的广度,还有很多可以说的,但这应该有助于你开始。简而言之,是的,在ActiveMQ中,您可以很好地混合使用不同协议上的客户端,但您确实需要了解这样做的局限性。

 类似资料:
  • 当以下转换在将RDD写入文件之前执行时,它们之间有什么区别? 聚结(1,洗牌=true) 合并(1,洗牌=假) 代码示例: 它与collect()相比如何?我完全知道Spark save方法将以HDFS风格的结构存储它,但我更感兴趣的是collect()和shuffled/non shuffled coalesce()的数据分区方面。

  • 混合应用 It's possible to connect infinite count of microservices to your existing Nest web application. 可能会在你现有的Nest web应用程序中上连接无数微服务。 Example: 示例: const app = NestFactory.create(ApplicationModule); cons

  • 问题内容: 是否可以将HQL和Criteria API混合使用? 我有一个包含HQL中的where条件的,并且已经构建并从其他地方获取了。我想知道是否可以将where条件添加到中。where条件可以是多个条件“与-或-” /“或-或”在一起。 我可以在不解析where条件的情况下执行此操作吗? 问题答案: 您可以使用Restriction.sqlRestriction(字符串sql)。

  • 本文向大家介绍sass 创建和使用混合,包括了sass 创建和使用混合的使用技巧和注意事项,需要的朋友参考一下 示例 要创建一个mixin,请使用@mixin指令。 您可以在mixin名称后面的括号内指定参数列表。切记以变量开头,$并用逗号分隔。 要在另一个选择器中使用mixin,请使用@include指令。 从混入样式将目前在使用footer,并header与值#ccc的$color变量,#dd

  • OpenGL中,混合(Blending)通常是实现物体透明度(Transparency)的一种技术。透明就是说一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度结合。一个有色玻璃窗是一个透明的物体,玻璃有它自己的颜色,但它最终的颜色还包含了玻璃之后所有物体的颜色。这也是混合这一名字的出处,我们混合(Blend)(不同物体的)多

  • 使用混合器画笔绘画 混合器画笔可以模拟真实的绘画技术,如混合画布上的颜色、组合画笔上的颜色以及在描边过程中使用不同的绘画湿度。 混合器画笔有两个绘画色管(一个储槽和一个拾取器)。储槽存储最终应用于画布的颜色,并且具有较多的油彩容量。拾取色管接收来自画布的油彩;其内容与画布颜色是连续混合的。 注意:有关混合器画笔的视频,请参阅 Adobe Photoshop 教程 – 使用混合器画笔 选择混合器画笔