Java 端点的Camel处理器

Java 端点的Camel处理器,java,apache-camel,Java,Apache Camel,我正在试验Camel,发现它是一个方便的端点集成工具。我已经设置了以下实验应用程序: 第一个端点是一个简单的HTTPGET请求(在命令行上使用curl)。它使用Jetty(这是基于骆驼的应用程序)与中央交换机进行接口。这会进行一些基本的修补,并将请求传递给另一个端点(Thrift服务器),该端点负责处理请求。然后将其响应路由回命令行客户端。因此,该设置是一种第三层的Hello world体系结构 我的路线通常采用以下形式: from("jetty:http://localhost:8080/he

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

第一个端点是一个简单的HTTPGET请求(在命令行上使用curl)。它使用Jetty(这是基于骆驼的应用程序)与中央交换机进行接口。这会进行一些基本的修补,并将请求传递给另一个端点(Thrift服务器),该端点负责处理请求。然后将其响应路由回命令行客户端。因此,该设置是一种第三层的Hello world体系结构

我的路线通常采用以下形式:

from("jetty:http://localhost:8080/hello").process(new DummyProcessor()).process(new HelloProcessor());
我的问题如下:


假设HelloProcessor向另一个端点发送一条Thrift消息进行处理,那么这不应该是一个组件吗?使用处理器完成这样的任务是否是一种好的(可接受的)实践?此外,如果组件确实可以接受,那么编写组件有什么好处。

如果您打算在一条或几条路线上使用组件,那么编写组件实际上没有任何好处

如果将来打算在多个路由中使用此处理器,并且需要通过一些参数对其进行配置,则通常需要编写自己的组件。这也可能使路线更具可读性。组件也是一个易于在不同的Camel应用程序和项目之间共享的工件

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

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

如果要在一条或几条路线上使用组件,编写组件实际上没有任何好处

如果将来打算在多个路由中使用此处理器,并且需要通过一些参数对其进行配置,则通常需要编写自己的组件。这也可能使路线更具可读性。组件也是一个易于在不同的Camel应用程序和项目之间共享的工件

from("file:///var/files/inbox").to("http://www.example.com/");
vs
from("file:///var/files/inbox").process(sendHttpToExampleDotComProcessor); // or whatever
如果是一次性使用,不要过于复杂