2

我正在尝试使用 Camel,发现它是一种方便的端点集成工具。我设置了以下实验应用程序:

第一个端点是一个简单的 http-get 请求(在命令行上使用 curl)。这与使用 Jetty 的中央交换机连接(这是基于 Camel 的应用程序)。这会进行一些基本的修改并将请求传递给另一个处理请求的端点(Thrift 服务器)。然后将其响应路由回命令行客户端。因此,该设置是一种第 3 层过度设计的 Hello-world 架构。

我的路线通常采用这种形式:

from("jetty:http://localhost:8080/hello").process(new DummyProcessor()).process(new HelloProcessor());

我的问题如下:

鉴于 HelloProcessor 将 Thrift 消息发送到另一个端点进行处理,这不应该是一个组件吗?将处理器用于此类任务是一种好的(可接受的)做法吗?此外,如果确实可以接受,那么编写组件有什么好处。

4

1 回答 1

4

如果您打算在一条或几条路线中使用它,那么编写组件并没有任何好处。

如果您打算将来在多个路由中使用此处理器,并且您需要一种通过某些参数配置它的方法 - 那么您通常会编写自己的组件。它也可能使路线更具可读性。组件也是在不同的 Camel 应用程序和项目之间共享的简单工件。

from("file:///var/files/inbox").to("http://www.example.com/");
vs
from("file:///var/files/inbox").process(sendHttpToExampleDotComProcessor); // or whatever

如果它是一次性使用 - 不要过于复杂。

于 2013-01-15T09:26:51.750 回答