如何将Camel支持添加到现有应用程序

时间:2014-03-10 11:50:32

标签: apache-camel

我想“打开”基于应用程序的产品,以便与Camel进行企业集成。也就是说,我希望购买我的应用的客户能够通过Camel向应用提供信息,而无需在我的应用上创建完整的公共API。

我已经阅读了很多的骆驼文档,示例,甚至是书籍,但我仍然无法从概念上入手。 首先,我可以让Camel运行:我的应用程序有Spring支持,我只是不知道如何“部署”它。

让我对用例进行过度简化:

  • 假设我希望我的应用偶尔弹出一个对话框,其中包含一条消息。我的网络应用程序控制弹出对话框的时间。
  • 我希望消息来自客户拥有的其他软件系统 - 我希望这是通过Camel。 (可能是ActiveMQ,可能是电子邮件,可能是存放在某处的文件,Camel支持的所有内容)
  • 客户已在某个较早的时间点在我的应用中配置了此消息,其中包含要获取消息的密钥。所以这是InOut交换(以Camel术语表示)。换一种说法:
    • 在配置时,客户说:“当对话框弹出时,我有'foo'消息需要显示。”
    • 在运行时,我的应用程序说:“嘿骆驼,我要显示一个对话框,你有一个'foo'消息让我在其中显示吗?”

就是这样。非常简单,我应该能够根据我所阅读的内容轻松解决它,但我无法完全理解我的案例在示例和教程中的确切位置。我认为这种脱节是因为大多数问题都解决了特定解决方案中的特定集成问题。虽然我打开我的应用程序进行一般的整合 - 我没有关于骆驼的客户端的任何细节。

所以要了解具体问题:

  1. 我假设我的应用需要成为骆驼端点,这是正确的吗?例如。客户在我的应用程序中设置了一个指向此对话框弹出功能的路径。

  2. 在这种情况下,谁应该运行骆驼,客户,我的应用程序,或两者兼而有之? (我认为“run”camel意味着启动CamelContext吗?我可以在我的应用程序中执行此操作,没问题,但这是我想要的吗?)

  3. 具体是什么:我是创建消费者还是生产者?

  4. 客户的感觉是什么样的?他们如何向此端点发送消息?他们如何得到请求?客户是否需要访问我的API,或者他们需要的是Camel吗?他们还需要启动CamelContext吗?

1 个答案:

答案 0 :(得分:1)

<强> Q1。我假设我的应用程序需要是一个骆驼端点,这是正确的吗?例如。客户在我的应用程序中设置了此对话框弹出功能的路径。

A1。这是一个选项,在骆驼术语中,您的应用程序将成为驼峰组件。但是我认为这将是一个糟糕的决定。然后你绑定你的应用程序依赖于骆驼。

你应该做的是在你的应用程序中有一些接口,可以是一个web服务,可以是active-mq等。这是camel与你的应用程序通信的地方。

<强> Q2。在这种情况下,谁应该实际运行骆驼,客户,我的应用程序,或两者兼而有之? (我认为“run”camel意味着启动CamelContext吗?我可以在我的应用程序中执行此操作,没问题,但这是我想要的吗?)

A1。您应该单独为您的应用程序开发骆驼服务。它是一个集成框架。它们应该完全脱离。它可以作为应用程序的单独服务启动,监听其不同的端点(电子邮件,a-mq,文件丢弃)并将此信息路由到应用程序公开的界面。

<强> Q3。具体是什么:我是创建消费者还是生产者?

您可以创建使用者来使用从客户发送到您的应用程序的请求(电子邮件,a-mq,文件丢弃)。生产者将用于将这些消息发送到您的应用程序界面。

<强> Q4。从客户的角度来看,它是什么样的?他们如何向此端点发送消息?他们如何得到请求?客户是否需要访问我的API,或者他们需要的是Camel吗?他们还需要启动CamelContext吗?

Camel拥有许多不同的消费者,客户可以使用它,它会收听电子邮件,公开Web服务,等待文件丢失。客户需要访问这些端点,以便他们可以与您的系统进行通信。他们不需要启动驼峰上下文,驼峰位于您公开的接口后面,并将消息路由到您定义的端点。

但是,您真的需要所有这些端点吗?在您的应用程序中有一个客户可以使用的接口是不是更明智?

相关问题