5

作为一个无关紧要的、自以为是的观点,我发现 apache camel 文档过于冒昧地假设读者已经有骆驼的背景。

通常来说,Web 服务提供者是生产者,而它所生产的服务的客户端是消费者。

让我们看一下http://camel.apache.org/pojo-produce.html

也就是说,有两种不同的方式可以向 Camel Endpoint 发送消息。

@EndpointInjecct (uri ..) ProducerTemplate ...

是不是在说

  • 嘿,我是一个端点,这是我的 uri 和一个模板来打我,所以打我

  • 或者,嗯……在晴朗的蓝天下某处有一个带有这个 uri 的端点,这是我想我会用的模板

???

同样是@Produce,和ProducerTemplate

  • 指定我是一个会被击中的端点?
  • 或指定我要打的制作人的模板?

同样,@Consume,

  • 我是否指定我是消费者?
  • 或者我正在指定如何消费?

顺便说一句,@Produce(uri) 或 EndpointInjection (uri) 中的 uri

  • 我要发送到这个 uri 吗?
  • 或在此 uri 下接收?
4

1 回答 1

1

根据您的疑问,下面我试图澄清:

@EndpointInject (uri=...) ProducerTemplate ...

这意味着您的第二个选择:

在晴朗的蓝天下的某个地方有一个带有这个 uri 的端点,这是我想我会用的模板

即,使用 Camel API ProducerTemplate 将消息发送到在 uri 上定义的另一个端点。

关于@Produce 和 ProducerTemplate,这里最接近的猜测是

指定我要打的制作人的模板

尽管从技术上讲,指定在 uri 上命中的端点不会与 Camel 术语中的生产者混淆,但它只是一个端点,在这种情况下,它会被称为消费者,因为它接收消息。

类似地,@Consume 将该方法标记为消费者方法,即处理端点传入消息的方法,端点由 uri 指定。

希望这个对你有帮助。

于 2018-05-14T17:33:04.007 回答