问题标签 [enterprise-integration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 ActiveMQ/Stomp 在 PHP 和 Java 之间进行通信
背景
我有两个服务需要通过消息队列相互通信。一种是用 PHP 编写的遗留服务,另一种是用 Java 编写的。迟早,PHP 服务将用 Java 重写。它们相互通信的当前方式是写入共享数据库,由其他服务轮询。这就是我试图摆脱并用消息队列代替的东西。
问题
我现在正在处理的通信是从 PHP 服务到 Java 服务。它需要发送一个相对复杂的对象(字符串和整数以及字符串和整数的列表和映射)。理想情况下,该解决方案在 PHP 中是可行的,在 Java 中是理想的,因为这将是这个项目的遗产。
可能的解决方案
-
1.
apache-camel - Apache Camel:保持路由信息完全独立于 Java 代码
首先感谢目前参与 Camel 开发的人们,感谢他们付出的所有辛勤工作。
我正在寻找一些设计建议。
架构是这样的:我有一堆 Java 类,在实例化时需要它们相互连接并使用 Apache Camel 发送消息。设计约束要求我创建一个框架,以便所有路由信息、生产者、消费者、端点等都应该成为 camel-context.xml 的一部分。
个人应该有能力修改这样的文件并完全改变现有的路线,而无需提供 Java 代码。(不会提供 Java 代码,只会提供编译后的 Jar)
例如在一个设置中, Bean A -> Bean B-> Bean C-> 文件-> 电子邮件。 在另一个 Bean B->Bean A->Bean C->ftp->file->email 我们尝试了各种方法,但是如果原始 bean 没有实现为 Java DSL,消息率非常高,因为骆驼不断调用第一个示例中的 Bean A 和第二个示例中的 Bean B(它们是源)。
Bean A 和 Bean B 发起消息并且是事件驱动的。如果发生所需的事件,bean 会发出通知消息。
我的转换非常简单,根本不需要 Java DSL 的强大功能。总而言之,我有以下问题:
1)考虑到上述限制,我是否确保所有路由信息,包括目标地址,都是骆驼上下文文件的一部分?
2)有没有我可以看的例子来保持路由信息完全独立于java代码?
3)如何确保 Camel 不会不断调用原始 bean?
4) Camel 是否不断调用原始 bean 或它发送和消息的任何 bean,而不管 bean 在整个消息队列中的位置?
我已经用尽了尝试各种方法来设置它的选项。任何帮助,将不胜感激。
apache-camel - 骆驼动态uri参数
我想用骆驼实现内容丰富器模式,如下所示:
动态 uri 基于来自direct:x
通道的每条消息。因此,假设有一个带有值的 xml 项,a
那么 uri 应该类似于 http://someurl?q=a 但 dynamicUri 只能是资源通道标识符。
我在这里找到了一些关于此的讨论,但我并不真正理解它,并且我的工作区中没有“HttpProducer.HTTP_URI”。我需要哪个骆驼包,我该怎么做?处理器可能,但如何?
jms - 如果没有可用的临时队列,实现请求/回复模式的最佳方式是什么?
我的客户端应用程序有很多实例。这些客户端通过消息传递向服务器应用程序发送请求并接收回复。通常,回复将使用临时队列发送。
不幸的是,我必须使用没有临时队列或主题概念的 Stomp 协议。(虽然消息代理有)
确保只有原始请求者收到回复的最佳方法是什么?对于这种不幸的情况,是否有任何最佳实践?
xml - Tibco 设计师
我正在与 tibco 设计师一起做一个项目,并且需要一个 xml 文档被要求重复到 3 个目的地,并修改了一些标签。我正在考虑使用标记器在 JAVA 中执行此操作,但我想知道 TIBCO Designer 5.3 是否具有此功能。
任何意见或建议将不胜感激。
rgds,杰伊
java - 合并后的整合:Camel 还是 XAware?
两家公司合并后,企业集成的最佳工具是什么: - Camel 还是 XAware?- 或者两者都满足不同的需求?
似乎与更专注于数据集成的 XAware 和拥有更广泛的集成视图(包括工作流、路由等)的 Camel 存在一些重叠。
你的评论?
在这种情况下,每种产品的优势和劣势是什么?
ruby - 阿帕奇骆驼和红宝石
我正在开发一个使用 Ruby、Stomp 和 ActiveMQ 的解决方案。由于我希望实现一些消息路由模式(如在企业集成模式中),我想知道是否有一个 gem 来接口 Ruby 和 Apache Camel,或者其他可以与 Ruby/Stomp 一起使用的消息路由/集成框架(或豆茎)/ActiveMQ。提前致谢。
java - Apache Camel 到底是什么?
我不明白骆驼到底是做什么的。
如果你能用 101 个字来介绍一下 Camel:
- 它到底是什么?
- 它如何与用 Java 编写的应用程序交互?
- 它与服务器一起使用吗?
- 它是一个独立的程序吗?
请解释骆驼是什么。
java - 骆驼请求/回复相关性
我有一个 CXFRS 端点,其中诸如“GET /files/x”之类的请求应从特定目录返回文件“x”,然后将其删除。这些文件是从另一个进程输出的,然后通过此路由快速使用。因此,如果需要,可以对它们进行轮询并临时保存在内存中。
下面是我的网络服务。
下面是不完整的路线。
我已经调查了内容丰富器模式,但这无济于事,因为消费者无法在丰富器中访问原始交换。因此,文件名不能从输入消息中动态确定。换句话说,下面的示例不会读取文件“x”,因为文件端点永远不会看到文件头。
我还尝试在 Web 服务路由和单独的文件路由之间使用聚合器模式,聚合策略如下所示。
这不起作用,因为聚合器模式似乎是“仅限于”交换;使用“in out”交换,消息到达聚合器后立即将回复返回给客户端,而不是在聚合完成后。随后,我开始编写下面的过程。
这个过程只允许我动态配置内容丰富器。我很难相信没有更好的方法来做到这一点。特别是,我关心线程和在上下文中不断添加/删除组件/端点。
任何人都可以提出更好的解决方案来解决这个问题吗?
spring-integration - 网关和服务激活器有什么区别?
作为消息端点的网关和服务激活器有什么区别(就企业集成模式而言)?