Apache-Camel,ActiveMQ,camel-jms和Fuse - >我为什么需要它们?

时间:2013-11-02 11:43:16

标签: apache-camel activemq apache-servicemix fuseesb

我仍然在努力解决Camel的一些主要特征和限制。

我的目标是实现一个可以migrate camel endpoints的演示应用程序。为实现这一目标,每个人都建议我将camel load-balancer pattern与故障转移结构一起使用。

为实现这一目标,人们建议使用Fuse和ActiveMQ。有些人甚至建议JBoss,但我迷路了。

我知道Camel需要JMS服务器的实现。为了实现这一点,我可以使用ActiveMQ - 一个JMS服务器的免费实现。

然而,驼峰也证明了jms组件。这是什么?这是JMS的客户端实现吗?如果是这样,我不应该为JMS使用ActiveMQ客户端吗?有人可以提供一个有效的例子吗?

随着ActiveMQ和JMS的理解,我可以尝试找出人们为什么建议使用Fuse。我希望我的实现尽可能简单。为什么我需要保险丝? Camel + ActiveMQ组合具有负载平衡器模式和故障转移机制吗?

我迷失在这种新技术的海洋中,如果有人能给出一个方向,我会感激不尽。

2 个答案:

答案 0 :(得分:2)

Camel提供了两个组件。第一个是jms组件,它是用于处理JMS服务器的通用API。另一个是activemq组件,它使用activemq API来处理activemq消息代理。 activemq组件是servicemix / fuse之类的默认组件,使用内部代理(不是联网/外部代理)。

如果要连接到activemq,可以使用activemq组件或jms组件。 jms组件不会自动启动代理,您需要自己执行此操作。

Fusesource == JBoss Fuse == Apache ServiceMix +一些插件。为了论证,我将把所有这三个称为ServiceMix。

ServiceMix是一种企业服务总线,如果您不熟悉该概念,可以在维基百科上查找该术语。它使用Apache Camel定义组件之间的路由,并根据需要实现许多集成模式。 ServiceMix默认使用Apache CXF部署,用于JAX-RS和JAX-WS服务,以及Apache ActiveMQ,JMS消息代理。使用Camel,您可以告诉服务组合,当调用REST API时,执行一系列步骤,每个步骤与之前的步骤分离。

JBoss Fuse(企业版,费用金钱版)附带了一些围绕故障转移的附加组件。其中一些存在于servicemix中(即,您可以在热备份模式下运行servicemix,等待主服务器关闭)。除了来自一个端点的消息可以传递到一组N个端点中的任何一个之外,Camel负载均衡器模式实际上并不意味着复制。 http://camel.apache.org/load-balancer.html

另一方面,请查看ServiceMix的故障转移http://servicemix.apache.org/docs/4.4.x/users-guide/failover.html

我认为根据您的问题,您指的是系统故障故障转移(需要针对新实例),而不是Camel Loadbalancer组件(这可能是混淆来自社区和您的侧)。

答案 1 :(得分:1)

首先阅读这些内容...... Camel In ActionActiveMQ In Action