当前位置: 首页 > 知识库问答 >
问题:

阿帕奇骆驼生产者消费者术语

子车睿
2023-03-14

以下是《行动中的骆驼》中关于生产者和消费者的定义

使用者可以从外部服务接收消息,在某些系统上轮询消息,甚至创建消息本身。然后,该消息流经一个处理组件,该组件可以是企业集成模式(EIP)、处理器、拦截器或其他一些自定义创建。消息最终被发送到一个目标endpoint,该endpoint是生产者的角色。路由可能有许多修改消息或将其发送到另一个位置的处理组件,也可能没有,在这种情况下,它将是一个简单的管道。

我的疑惑:

  1. 什么是外部服务?
  2. 使用者如何在生产者生成消息之前发挥作用。我的理解是,生产者生成并转换消息作为交换,以使消息与使用者的endpoint兼容。
  3. 为什么消费者必须做生产者的工作(即转换消息并将其再次发送给生产者?)难道不是相反吗?

谢谢!

共有1个答案

薛兴言
2023-03-14

例如,外部服务可以是外部web服务、外部REST服务、EJB等等。

使用者可以从这些服务中的任何一个进行消费,也可以在文件系统的特定位置监听要创建的一个或多个文件,还可以从消息队列(JMS)进行消费,等等,等等--只有可用的组件和endpoint限制了无穷无尽的可能性。

基本上,使用apache camel,您正在设计一个消息总线(ESB),对吗?你可以这样想--“消费者”从外面的世界拿东西,放到公交车上。

然后,你的信息会经过不同的路线(很可能是通过EIPs在途中被翻译和修改),然后最终它不得不在现实世界中的其他地方--这就是制作人的工作。

消费者在总线上消费/生产者在总线上生产。

通常,您不需要过多考虑endpoint是否以生产者和消费者的身份运行--只需根据需要使用.from.to,从那里开始,一切都将正常工作。

我也读一下这个答案:阿帕奇骆驼的生产者和消费者

希望这有帮助!

 类似资料:
  • 我对骆驼生产商有很好的了解,但我不能对各种骆驼消费者保持清醒的头脑。特别是事件驱动消费者和轮询消费者,camel如何知道为这些消费者调用回调? 消费者的一般流量是多少?

  • 我已经和ApacheCamel合作了一段时间,做了一些基本的工作,但现在我正在尝试创建一个路由,在该路由中,我可以让多个“消费者”访问同一条路由,或者在路由中添加一个消费者,然后处理消息。 我的想法是拥有一个由事件触发的事件驱动消费者,然后例如从ftp读取文件。我正计划做这样的事情: 所以这个想法是我有一个事件(例如直接或来自消息队列),它具有“fileName”属性,然后使用该属性从ftp下载/

  • 我知道什么是生产者和消费者。但官方文件显示 < li >它是流媒体平台。 < li >它是企业消息系统。 < li>Kafka具有从数据库和其他系统导入和导出数据的连接器。 这是什么意思? 我知道生产者是向Kafka Broker发送数据的客户端应用程序,消费者也是从Kafka Broker读取数据的客户端应用程序。 但我的问题是,消费者可以将数据推送到Kafka Broker吗? 据我所知,我认

  • 我做了一个poc,其中我使用spark流从Kafka读取数据。但我们的组织要么使用ApacheFlink,要么使用Kafka消费者从ApacheKafka读取数据,作为标准流程。所以我需要用Kafka消费者或ApacheFlink替换Kafka流媒体。在我的应用程序用例中,我需要从kafka读取数据,过滤json数据并将字段放入cassandra中,因此建议使用kafka consumer而不是f

  • 我试图使用Apache Camel Quartz2实现一个调度器,它每分钟执行一次路由,并按预期执行一些任务。我使用spring DSL实现与apache camel相关联的路由,如下所示: 根据日志,它不会记录为路由记录的消息,例如Direct:DomainsWithFTPUsers等等。请指导如何实现同样的目标。