问题标签 [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.

0 投票
1 回答
1706 浏览

java - 拆分器返回空数组列表弹簧集成

我们有一个案例,在我们的 Spring 集成拆分器逻辑中,它可以返回一个空值,ArrayList因此不提供要路由的数据。ArrayList当分离器返回空时,我们应该如何处理这种情况并将其重新路由到不同的通道。

更新 :

如 Artem 所示,我创建了一个自定义建议并成功完成了重新路由,但是仍然存在两个问题,其中第二个描述的是列出的阻止程序问题

我目前的课程如下

每当拆分器返回一个新的空数组列表时,“callback.execute() 的结果为空。但是,只要从拆分器返回的数组列表不为空,则返回的结果类型为 org.springframework.integration.util.FunctionIterator 而不是集合类型。关于是否有可能在两种情况下都返回集合而不是 null 或函数迭代器?至少避免获取函数迭代器并获取数组列表。

此外,当为构造函数设置有效的通道名称并通过该通道将消息发送到转换器方法时,转换器方法已成功执行,但是当它返回值时会发生以下错误

关于为什么会发生这种情况以及如何解决它的任何建议。

问候, 米琳达

0 投票
1 回答
986 浏览

spring-integration - 什么时候应该使用 Spring Integration 或相关框架?

有哪些指标应该使用企业集成模式框架?另一方面,有哪些指标应该坚持使用简单的旧代码进行逻辑流?

在我的例子中,我们正在为一个映射/处理应用程序应用 Spring Integration,该应用程序从数据库中读取数据,应用业务逻辑(使用 SI),然后进行一些相应的 API 调用。不确定我们通过 SI 获得了什么样的投资回报率而不是普通的旧编码方式。

0 投票
2 回答
3283 浏览

java - Apache Camel Java DSL将类参数传递给bean方法

我正在使用 Camel 2.13.1 我想将一个类作为参数传递给我在 bean 中的一个方法

我可以做类似的事情吗

我知道我可以在标头中发送合格的类名并在 bean 中使用它,但感觉不太对劲。还有其他选择吗?

我看到了这个链接,但它对我不起作用 Apache Camel - Spring DSL - 将字符串参数传递给 bean 方法

0 投票
1 回答
72 浏览

mongodb - Spring集成中的错误处理

mongodb-queue用来发送消息。为了处理错误,我使用了发送异常的单独通道。发送异常时,我需要检索 POJO。

如果您对如何操作有任何想法,请告诉我。

0 投票
1 回答
413 浏览

parallel-processing - 如何在 Spring Integration 中运行并行聚合器?

我想运行一个 Spring Integration 流程,如果达到任何容量,我可以轻松地扩展组件实例。

特别是,我想知道如何在以下场景中扩展聚合器:聚合器层之前的各种组件产生类 X 对象的不同部分-假设它们产生两个这样的对象 X 1, X 2的部分-部分称为 {a 1 , b 1 } 和 {a 2 , b 2 }, 分别。聚合器现在应该从它们的部分构造 X 1和 X 2并发送它们。我们还假设有两个聚合器 A 1和 A 2

在此处输入图像描述

我怎样才能最容易地设置它,使其按预期工作,即创建并发送X 1和 X 2 ?

我看到以下注意事项:

  • A 1得到 a 1, A 2得到 b 1,并且 X 1不能在没有额外的东西的情况下被构造。
  • 我们想要一些负载平衡,这首先是多个聚合器的原因。
  • 如果需要,应轻松添加额外的聚合器 - 应避免聚合器数量的静态配置。

我想知道以下内容是否对我有用 - 这是基于 Spring Integration 文档,但我不确定我是否正确。

  1. 设置一个Redis Message Store,其中部分 X 1和 X 2将在所有可用之前存储。
  2. 在所有聚合器实例之间共享消息存储。这是聚合器配置中的设置 (6) 。
  3. (与聚合器一样)使用相同的 CORRELATION_ID 标记相同 X 的部分(a 和 b)。根据收到的 a 和 b 编写 ReleaseStrategy。
  4. 创建一个Redis Lock Registry并配置所有 Aggregator 以使用它。这是聚合器配置中的设置 (20) 。

这会吗?尤其是:

  1. 我可以在多个聚合器之间共享一个 MessageStore 吗?
  2. 共享 MessageStore 时,如果 A 1将 a 1写入其中并且 A 2写入 b 1,我的 ReleaseStrategy 是否会看到 X 1现在已准备好组装?
  3. 是否只有一个 Aggregator 使用 ReleaseStrategy 处理聚合并发送组装好的 X,因为我正在使用锁?

非常感谢!

0 投票
1 回答
207 浏览

spring-integration - 使用 Spring Integration 和 AMQP,我可以创建竞争消费者的 Pub-Sub 组吗?

我想创建一个如下图所示的设置:

在此处输入图像描述

这可以通过 Spring Integration 对 AMQP 的支持来完成吗?即图中的通信通道可以是AMQP吗?目标是这样的:

  1. 图片中的每个组件都可以是一个单独的服务器。
  2. 我可以扩大每个消费者群体。
  3. 每个消费者组中只有一名工作人员处理该消息。
  4. 每个消费者组接收每条消息。

我查看了文档,但不确定 SI 提供的两个 AMQP 消息通道实现(点对点和发布/订阅)是否可以在这里解决问题。特别是,点对点通道是否会像常规直接通道一样工作,即支持多个端点,只有一个端点接收每条消息?

非常感谢!

0 投票
1 回答
5829 浏览

concurrency - Akka 是否淘汰了 Camel?

我的理解是,它提供了一个模型,多个独立的线程可以通过这种模型以高度并发的方式相互通信。它使用“演员模型”,其中每个线程都是有特定工作要做的“演员”。您可以协调在什么条件下将哪些消息传递给哪些参与者。

我以前使用过 Camel,对我来说,现在 Akka 如此成熟且有据可查,我觉得它有点失去了它的光彩/实用性。据我了解,骆驼是关于企业集成,即将多个不同的系统集成在一起,通常以某种服务总线方式。

但是想一想:如果我目前使用 Camel 来:

  • 轮询 FTP 服务器以获取文件,一旦找到...
  • 将该文件的内容转换为 POJO,然后...
  • 如果 POJO 具有某种状态,则发送电子邮件,或者
  • 在所有其他情况下将 POJO 持久化到数据库

我可以用 Akka 做同样的事情;我可以为每个步骤(轮询 FTP、转换文件 -> POJO、电子邮件或持久化)设置 1 个 Actor,将它们连接在一起,让 Akka 处理所有异步/并发。

所以即使 Akka 是一个并发框架(使用 Actor),即使 Camel 是关于集成的,我还是要问:Akka 不能解决 Camel 所做的所有事情吗?换句话说:仍然存在哪些用例来使用 Camel 而不是 Akka?

0 投票
1 回答
460 浏览

apache-camel - Akka 是否原生支持集成模式?

我是 Akka 的新手,我想弄清楚它是否具有对企业集成模式 (EIP)的内置支持,或者我是否需要将这种类型的路由/集成委托给像Camel这样的框架。

在我的用例中,我有一个从源(文件)读取二进制样本的参与者;这个演员叫做SamplerSamplerthan 将实例Sample(消息)传递到一个名为SampleProcessors. 每个示例处理器对给定的Sample. 根据处理 a 的处理器的结果Sample,它可能需要路由到 1+ other SampleProcessor,或者可能所有处理都已结束。根据给SampleProcessor定的确切和确切性质SampleSample可能需要多播到其他接收者的列表SampleProcessors

这一切对我来说就像骆驼。

所以我问:

  • Akka 是否具有对路由、广播、多播和其他 EIP 的内置支持(如果有,它们是什么以及它们在哪里记录)?
  • 或者,我应该尝试将 Actor 系统与 Camel 集成,在这种情况下,它会是什么样子?我知道有一个 Camel-Akka 组件,但我相信这只是为了将 Camel 总线与演员系统集成(而我想要一个内部的服务总线我的演员系统中使用服务总线)
  • 或者,我应该在这里自己做 EIP/actor 布线吗?
0 投票
2 回答
1175 浏览

mule - 规范数据模型

我正在构建一个应用程序,该应用程序公开一个 Rest API,并在后端通信和协调多个 SOAP 服务以构建对 REST API 的响应。我一直在阅读有关规范数据模型以及它们如何帮助我松散耦合这些后端 SOAP 服务的文章。

我应该在我的 Rest API 和后端服务之间使用规范数据模型吗?

目前,后端 SOAP 响应使用 JAXB 解组为 Java 对象。然后,我使用脚本将 jaxb 对象映射到表示我想要以 JSON 形式返回的结构的映射,并通过我的 Rest API 将映射简单地转换为 Json。

所以 SOAP -> jaxb Java 对象 -> Java Map(代表 JSON) -> Json

我应该在此处为规范模型添加另一个步骤吗?

所以 SOAP -> jaxb Java Object -> CANONICAL MODEL 不代表 SOAP 或 JSON 结构 -> Java Map(代表 JSON) -> Json

这是否适合 CDM?还是添加这个额外的级别是多余的?

0 投票
2 回答
11077 浏览

java - Spring 集成 - 入站与出站通道适配器

入站和出站通道适配器之间的根本区别是什么?

任何示例都会非常有帮助。

我已经查看了 Spring 文档,但我并不清楚这种“方向性”的区别。我支持配置了出站通道适配器的应用程序,但我发现出站标签的行为与直觉相反。该适配器获取一个外部文件,然后将其带入我们解析文件并保存数据的应用程序。

这与问题类似,但我想更广泛地关注通道适配器,并希望获得更多反馈!

谢谢!