0

我仍在努力理解 Camel 的一些主要功能和限制。

我的目标是实现一个可以迁移骆驼端点的演示应用程序。为了实现这一点,每个人都建议我应该使用带有故障转移结构的骆驼负载平衡器模式

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

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

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

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

我迷失在这片新技术的海洋中,如果有人能给我一个方向,我将不胜感激。

4

2 回答 2

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,等待主节点关闭)。Camel 负载均衡器模式并不真正意味着复制,只是来自一个端点的消息可以传递到一组 N 个端点中的任何一个。 http://camel.apache.org/load-balancer.html

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

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

于 2013-11-02T16:49:29.493 回答
1

从阅读这些开始... Camel In Action , ActiveMQ In Action

于 2013-11-03T06:15:43.203 回答