问题标签 [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.
apache-camel - 使用esb的原因是什么
我是企业集成和 esb 概念的新手。
我正在开展一个项目,其中包括与不同系统的一些集成(例如 Sap,一个文件管理系统,该项目将使用 14 个外部 Web 服务。我将创建一个 Web 服务项目来使用这些外部服务)。
我可以编写一个使用 14 个外部服务的 Web 服务,并且可以在我的项目中使用这些 Web 服务。为什么我必须使用 esb ?哪个场景
我想明白,什么时候必须使用 esb?对我来说有什么好处?
apache-camel - Apache camel - EIP 设计查询
我有一个与 EIP 设计相关的查询。我需要按块处理 csv 文件并调用 Rest API。完成整个文件的处理后,我需要调用另一个 Rest API,告诉处理完成。我希望处理路由所以如果终端系统不可用,我会在中间排队,重试将在代理级别发生。
我的流程如下。第一个流程:csv文件->按100条记录的块拆分->将消息放入队列
第二个流程(Transacted route):从队列中挑选消息 -> 调用其余 API
第二个流程已处理。由于我正在中断流程并且它是异步的,因此我不确定如何调用完成调用。我没有持久存储每个块处理的状态。
无论如何我可以使用 JMS 功能或 Camel 来实现它吗?
apache-camel - 文件组件(Apache camel)delete=true 参数在 Windows 中不起作用
Apache Camel File 组件在 Windows7 中无法正常运行,而在 Linux 中运行时没有任何问题。
我的要求:
文件处理后,必须从目录中删除文件。在 Windows 中,由于.camelLock文件无法正确删除。
多次尝试后,只有 Apache camel 可以从目录中删除文件。如果尝试未能从目录中删除文件,则它会引发异常。
如果我在目录中只有一个文件,它的工作没有任何问题,但如果我有多个文件,那么它会抛出一个异常。
应用环境:
我在 Tomcat 服务器中部署了 Apache camel 应用程序。
阿帕奇骆驼版本:2.17.1
阿帕奇骆驼路线:
在 Windows 中,我收到以下错误:
1|2017-11-14 17:56:34,828|11-01-41|default|WARN
|yes||oaccfGenericFileOnCompletion|file.analysis.input|提交期间出错。交换 [ID-51741-1510678404569-9-22]。原因:[org.apache.camel.component.file.GenericFileOperationFailedException - 无法删除文件:GenericFile[C:\var\opt\irs\message\661.zip]] org.apache.camel.component.file.GenericFileOperationFailedException:无法删除文件:在 org.apache.camel.component.file.strategy.GenericFileDeleteProcessStrategy.commit(GenericFileDeleteProcessStrategy.java:89) 在 org.apache.camel 的 GenericFile[C:\var\opt\irs\message\661.zip] .component.file.GenericFileOnCompletion.processStrategyCommit(GenericFileOnCompletion.java:127)
spring - 拆分大流时的Spring集成背压错误
目标是将大型 json.gz 文件(4 GB 压缩,大约 12 GB 未压缩,1200 万行)从 Web 服务器直接流式传输到数据库,而无需在本地下载。由于 Spring 集成出站网关不支持 gzip 格式,我自己使用 okhttp 自动解压响应:
在集成流程中:
但
输出通道在运行时使用由网桥轮询的无界队列连接。这是为了方便测试,以便队列可以替换为DirectChannel
用于测试。
我在这里有几个疑问。
- 我不确定在 bean 名称中使用 SPEL 的动态绑定是否有效,但我不知道如何验证它。
- 由于队列是无界的,我能想到的就是轮询不够快。但是,该异常表明分离器在跟上时遇到了问题。
wso2 - 禁用代理服务创建访问 wso2ei
有谁知道如何在 wso2ei 中禁用用户创建和删除代理的访问权限?
谢谢你。
spring - spring-integration-aws 动态文件下载
我需要根据消息内容从 S3 下载文件。换句话说,要下载的文件以前是未知的,我必须在运行时搜索并找到它。S3StreamingMessageSource似乎不太合适,因为:
- 它依赖于轮询,因为我需要等待消息。
- 我找不到
S3StreamingMessageSource
在流程中间动态创建的任何方法。gateway(IntegrationFlow)
看起来很有趣,但我需要的是一个gateway(Function<Message<?>, IntegrationFlow>)
不存在的。
另一个候选者是S3MessageHandler但它不支持列出查找所需文件所需的文件。
我可以直接使用 AWS API 实现我自己的消息处理程序,只是想知道我是否遗漏了什么,因为这似乎不是一个不寻常的要求。毕竟,并非每个应用程序都只是坐在那里并不断轮询 S3 以获取新文件。
java - 以成功路线为先决条件的路线(骆驼)
我目前有以下骆驼路线:
仅当先前的路由成功时才需要向收件人发送文件。
但是,在运行该路线时,我得出的结论是 onCompletion() 块中的 .to 也从输入文件夹中读取,但文件已经消失,因此无法将它们拾取并将它们写入收件人。(我不能在 from 处设置 noop=true,因为我确实希望文件在发送给收件人之后消失......)
那么我们如何将文件路由给收件人,以之前成功的路由为先决条件呢?
java - 在 Apache Camel 中获取端点详细信息
设置了轮询机制以选择端点,我们如何获得骆驼路由器发送请求的端点?
这个问题会更容易例如,
假设我有 3 个路由器指向的端点。我想获取请求到达的端点?尝试了几种生产者模板的内置方法来检索它们
. 但是什么都没有出现。提前致谢。
java - 错误通道中的 MessageHandlingException 消息
我编写了一个异常处理程序类,它查看默认 Spring IntegrationerrorChannel
的传入消息类型Message<TradeProcessingContext> message
:
我有如下处理程序实现:
这调用了父级process()
我知道org.springframework.messaging.MessageHandlingException: nested exception is java.lang.ClassCastException
当类型为Message<MessageHandlingException> message
in时我可以得到handleTradeError()
。
我该如何改进这种方法,以便也处理此类错误,或者tradeprocessingContext
也从这种类型中提取底层?
routes - Apache骆驼路线不调用另一条骆驼路线
我有三个骆驼路线单独运行良好,我试图在第一条路线完成后调用第二条路线,但是一旦我使用 URL 调用第二条路线,它没有被启动,事件第三条路线如何运行jetty:http://localhost:8181/mongoSelect
,我没有错误控制台也是如此。我已经尝试过from("jetty:http://localhost:8181/mongoSelect")
使用direct:
组件进行更改,请帮助我。
常数
第一条路线
第二条路线
第三条路线
我已经尝试过这种方法:
第一条路线
第二条路线
更新:我的代码发生了一些奇怪的事情,当我使用direct:mongoSelect
组件从第一条路线调用第二条路线时,控制正在移动,但没有响应的数据.to(QUERY_MONGO_DB)
,但是如果我使用from("jetty:http://localhost:8181/mongoSelect")
而不是from("direct:mongoSelect")
第二条路线,我正在获取数据作为回应。
第一条路线
第二条路线