1

问题概述

我正在使用 apache camel 2.4,并被要求在我们的一个 maven/spring 项目中设置一个内部消息传递系统。这可能看起来有点奇怪,但这是因为他们计划在以后将一些功能分离出来,并希望已经涵盖了集成方面。

所需的功能

基本上我有一个 bean (A) 进行一些处理并创建一个可序列化的对象。我有另一个 bean (B),它接受所述可序列化对象并执行我们希望异步发生的一些额外处理。

计划是让 bean (A) 通过 Camel 的 SEDA 组件生成一条消息,并让 bean (B) 在内部使用它。

我做了什么

到目前为止,我已经通过以下方式实现了这一点;

- 创建一个定义路由的 RouteBuilder 实现。

- 在春季配置我的 CamelContext 以使用所述路线构建器。

- 创建一个以 CamelContext 作为属性的“生产者”类,并使用它创建一个用于发送消息的 ProducerTemplate。- 由 bean (A) 使用。

- 将 bean (B) 定义为消费者(通过配置的 RouteBuilder 中的“bean:beanB”)。

问题

这可行,但是,作为骆驼的新手,我不确定这是否是实现所需功能的好方法。进一步查看 Camel 文档后,似乎有很多不同的方法可以做同样的事情(在 spring 中配置路由,而不是定义 RouteBuiler 实现,使用 SedaEndpoint 实现,在 spring 中定义 ProducerTemplate 并将其用作依赖而不是 CamelContext 本身.....)。

实现所需功能的标准做法/最佳方法是什么?

4

1 回答 1

1

您可以通过各种方式将事物连接在一起,但是您所描述的内容非常标准...

也就是说,您可以考虑以下...

于 2012-11-27T04:14:26.240 回答