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

Apache Camel中的多播

公冶宏深
2023-03-14

我是阿帕奇骆驼队的新手,所以请原谅我这个愚蠢的问题。我正在浏览使用多播发送消息的示例,但我不明白。

我知道(在网络层)多播源向订阅者发送数据报到指定地址,范围从224.0.0.0到239.255.255.255,但多播源“不知道”有多少订阅者,每个订阅者只发送一个数据报。

我也不理解文档中的示例(https://camel.apache.org/components/latest/eips/multicast-eip.html#_multicast_example)还是从这里(https://www.javarticles.com/2015/05/apache-camel-multicast-examples.html).为什么(如果我理解正确的话)明确指定了该消息的订户(“direct:a”、“direct:b”、“direct:c”)?毕竟,在一个时刻可能有3个,在另一个时刻可能有10个,以此类推。我认为我不需要更改代码和定义,例如“direct:10”,对吗?

Apache Camel多播与网络层的多播有什么不同吗?

共有2个答案

林魁
2023-03-14

是的,您正确地理解了网络层多播和apache camel多播之间的区别。

驼峰多播的用例是当您想要向多个endpoint发送相同的消息时。在文档中的示例中:

from(“direct:a”)。多播()。至(“直接:x”、“直接:y”、“直接:z”)

来自“direct:a”的相同消息将发送到所有三个endpoint。每个路由都定义了“目的地”endpoint的数量,对于不同的路由可能会有所不同。

请注意,在以下情况下:

from(“direct:a”)。到(“direct:x”)。至(“直接:y”)

您正在链接消息的处理。“direct:a”的结果将被发送到“direct:x”,而“direct:x”的结果将被发送到“direct:y”,因此“direct:y”可能会收到与“direct:x”不同的消息。

伍宝
2023-03-14

是的,这不一样。组播EIP是一种同时向N个收件人发送消息的方式(其中收件人的数量是固定的/提前知道的)。

 类似资料:
  • 我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题

  • 我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A

  • 我有一个restendpoint示例。org,返回表单的json响应 我的路线是这样的 我读过关于轮询消费者的内容,但找不到如何继续轮询endpoint的示例,直到它返回“success”响应。 是否应该使用轮询消费者?如果是这样的话,可以举一个与我的案例相关的例子。用于轮询restendpoint的任何其他资源都非常有用。

  • 我从基于apache-camel-spark的rest接口获得一个json数组作为输入。开始时,我想通过apache camels路线分割json-array来处理每个元素。我该怎么做? 我的测试输入json: 对于这个问题,我在stackoverflow上找到了一些间接描述的问题: link 1, link 2, link 3。 根据这些示例,我尝试了以下骆驼路线: 当我这样做时,我总是得到以下

  • 我试图在聚合器完成后获得一个回复,但是我得到一个异常,我没有指定任何聚合器子项,但是当我指定一个。to()endpoint我没有收到聚合结果。。。这可能吗? 控制器: 聚合器:

  • 我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是

  • 我正在努力寻找一个成熟的例子,说明如何在Spring Boot框架中使用ApacheCamel进行轮询。 我已经看过了:https://camel.apache.org/manual/latest/polling-consumer.html除此之外:https://camel.apache.org/components/latest/timer-component.html但是代码示例不够广泛,我

  • Apache Camel:2.12.2,activemq:5.7 我们注意到,在下面的路由中,对于前100次交换,节流工作正常。此后,它不是每秒发送100次交换,而是每秒仅发送1次交换。现在,如果我们将timePeriodMillis设置为100,它似乎可以正常工作。注意,我们同时发送500个交换。