Arn*_*ism 31 messaging apache-camel
我很难绕过这个概念.
我正在尝试实现一个端点,该端点在tcp端口上侦听专有格式的传入消息,然后转换消息并让camel接管转发和路由.
我是否正确理解了生产者是负责发送消息到Endpoint和Consumer来自该终端接收呢?
在研究接口时,我无法弄清楚这些对象之间的消息流,特别是在消费者部分.Consumer只定义start()和stop()方法......
在骨架实现上设置测试时,在端点和生产者对象上Camel调用.之后,它返回,与消费者或与之相关的处理器开始做任何事情.createProducer()process()
有人能指出我正确的方向吗?
chr*_*leu 49
重要的是要记住,Endpoint由Component(即终点工厂)创建的a 可以位于Camel的任一端Route.如果将Component放在路径的开头,那么必须有Component的Consumer一部分实现.这确实将特定的输入/请求(如HTTP请求)转换成通用的东西的工作-骆驼-可以旅行下来一个路线.如果您将Component放在路径的末尾,那么您必须具有a的实现.该制片人确实服用了工作交流从年底路线ExchangeProducer 并将其转换为特定的东西(如JMS消息).
我发现Fuse ESB文档比Apache Camel网站更好(一般).从Fuse ESB Component页面:
消费者端点消耗请求.它们总是出现在路径的开头,它们封装了负责接收传入请求和分派传出回复的代码.
生产者端点产生请求.它们总是出现在路由的末尾,它们封装了负责调度传出请求和接收传入回复的代码.

Arn*_*ism 20
我终于通过查看Stream组件找到了它.
事实证明,我犯了一个错误,认为端点是一切中心,一切都必须去.
简单的答案是消费者从外部系统接收数据(在我的情况下监听服务器套接字),生产者将数据发送到外部系统.
由于我的端点是只读的(它不会被用作Camel路由进程的最终目的地),所以我真的不需要生成器(如果系统由于配置错误而仍然尝试执行它,它应该抛出RuntimeException).一个合适的例子是camel-atom端点 - 你可以读取feed但是(从1.6.0开始)你不能发布一个.
同样,您只需要一个只写端点的生产者,该端点不接收来自外部系统的数据(例如,日志记录).
生产者扩展处理器,这意味着它也有一个处理方法.
查看Camel in Action一书中的免费第1章,其中介绍了Camel概念. http://www.manning.com/ibsen/
本教程也非常出色,因为它以稳定的步伐引入了这些概念 http://camel.apache.org/tutorial-example-reportincident.html
| 归档时间: |
|
| 查看次数: |
26648 次 |
| 最近记录: |