我正在尝试使用Camel,并发现它是端点集成的便捷工具。我已经设置了以下实验应用程序:
第一个端点是一个简单的http-get请求(在命令行上使用curl)。这与使用Jetty的中央交换机(这是基于Camel的应用程序)连接。这会做一些基本的修补并将请求传递给处理请求的另一个端点(Thrift服务器)。然后将其响应路由回命令行客户端。因此,该设置是一种三层过度设计的Hello-world架构。
我的路线通常采用以下形式:
from("jetty:http://localhost:8080/hello").process(new DummyProcessor()).process(new HelloProcessor());
我的问题如下:
鉴于HelloProcessor将Thrift消息发送到另一个端点进行处理,这不应该是一个组件吗?将处理器用于此类任务是否良好(可接受)?此外,如果确实可以接受,那么编写组件有什么好处。
答案 0 :(得分:3)
如果要在一条或几条路线中使用它,编写组件实际上没有任何好处。
如果您打算将来在多个路由中使用此处理器,并且需要一种通过某些参数配置它的方法 - 那么您通常会编写自己的组件。它也可能使路线更具可读性。组件也是在不同的Camel应用程序和项目之间共享的简单工件。
from("file:///var/files/inbox").to("http://www.example.com/");
vs
from("file:///var/files/inbox").process(sendHttpToExampleDotComProcessor); // or whatever
如果是一次性使用 - 请勿过度复杂化。