问题标签 [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 - 并发消费者但确保订单
我有一个以非常高的速率(> 100,000/sec)填充的 JMS 队列。
每秒也可能有多条与同一实体有关的消息。(对 entity 的多次更新,每次更新都作为不同的消息。)
另一方面,我有一个消费者处理此消息并将其发送到其他应用程序。
现在,由于消费者无法应对传入消息的速度,整个设置正在放缓。
因为,消费者处理消息的速率有一个 SLA,所以我一直在玩弄让多个消费者并行行动以加快流程的想法。
所以,我想做的是
- 多个消费者在队列上独立行动。
- 每个消费者都可以自由地获取任何消息。
- 抓取消息后,确保它是实体的最新版本。为此,我可以检查处理该实体的应用程序。
- 如果它不是最新的,请升级版本并重试。
到目前为止,我一直在查找集成模式和 JMS 文档,但没有成功。
我欢迎以更优雅的方式解决这个问题的想法以及 Java 世界中任何已知的 API、模式。
.net - 集成框架 .NET 像骆驼/弹簧集成
我目前正在寻找一个好的框架来集成具有不同通信方法的多个系统,例如
- FTP
- 邮件
- 队列
- 网络服务
在 .NET 应用程序中。对于 Java,似乎有很多可用的选项,但我在 .NET 平台上找不到类似的东西。
spring - 在保持先前功能的同时扩展 Spring 集成?
所以我是 Spring Integration 的新手,而且主要是 Spring 的新手,所以我可能不会掌握所有的术语,但我遇到了以下场景:
我有一个带有三个 SI 流的小型 Spring Integration 应用程序......每个流都有自己的网关,每个网关都有自己的请求通道和回复通道。这些流接收一个空调用(出于所有密集目的......基本上只是一个“GO”信号/空消息)并回复一个状态消息,具体取决于(微不足道的)业务逻辑结果。
我现在想将这些流中的每一个连接在一起,以便在一个“主流”中运行,给定一个请求,而不剥夺它们单独运行的能力,我想通过注释/XML(IE.给定一个调用主网关服务接口的控制器,不需要在注释/ XML 配置之外编写额外的代码。)
这是否可行,我应该使用哪些集成组件来做到这一点,和/或我是否应该只是调整每个网关的预期通道以端到端地相互会面(如果是这样,该策略将如何补偿以允许根据具体情况调用每个流)?
此外,如果这不可行,是否适合使用服务激活器来调用每个子流?我想避免更多地编码,但如果这是唯一的选择,我想它必须这样做。
谢谢!
java - 推广发布订阅模式以允许同一消息通道上的多种类型的良好模式是什么?
我正在使用春季发布订阅设置,将事件发布到单个频道。
不同的事件彼此完全不同,从类型派生侦听器的行为会很混乱。
我有足够的类型,但是我不喜欢大量不同的消息通道来处理不同的类型,所以如果可能的话,我想防止这种情况发生。
soa - 企业集成模式解决方案绘图工具
我想知道是否有任何绘图工具可用于根据 EIP 映射给定的用例解决方案。有一个可用于 MS Visio 的模板和一个用于 OpenOffice 的 SVG 替代品。模具中的形状很好,但似乎不是演示的最佳图形。绘制 EIP 的任何替代方案?提前致谢。
java - 使用 Camel 的消息监听器
我试图了解 Camel 如何阅读一些书籍(Camel in Actions)和一些教程,但有些东西我实际上不明白。基本上,每当用户单击网页或进行特定操作时,我都必须处理从 Web 应用程序发送到某些 Rabbit 队列的一些消息。
我将创建一个 Maven 项目并定义一个配置路由来处理这个过程。我的怀疑与该过程的执行有关。如果我理解得很好,当我使用
它创建一个 CamelContext 实例并处理队列。但尚不清楚该进程是否会继续等待队列中的新消息。我是否需要创建一些东西来主动检查队列中的新消息,比如监听器或守护程序,或者可以使用 Spring 对其进行配置?
谢谢你的时间!
安德烈亚
java - Camel CBR 和 POJO 财产检查
我有一个路由Order
实例的骆驼路由:
因此,如果某个特定Order
是 a 的订单Widget
,则需要将其路由到direct:widgets
等。
我对在每种when(...)
方法中放入什么感到窒息。我所拥有的不是合法的 Camel DSL 语法,用于说明我想要完成的事情。
所以我问:我在每种when(...)
方法中添加了什么来完成我正在寻找的那种路由?提前致谢!
java - Spring 集成:使用有序订阅者对发布/订阅频道进行异常处理
给定一个配置了任务执行器的发布-订阅通道,如果抛出异常,是否可以中断对其有序订阅者的调用?
例如,在此示例中,“工作”消息仍由序列中的第二个服务激活器发送。我希望这不会发生。
现实世界的用例稍微复杂一些,因为 aFile
发布给两个订阅者,一个用于解析它的内容,另一个用于归档到 S3。应用一个序列,以便在两个任务完成后可以聚合和删除它们。
S3 上传是通过一个不返回回复的出站通道适配器实现的。因此,有一个发布-订阅通道首先调用 S3 适配器(使用order
属性),然后将其发送File
到网桥,然后将其放置在收集聚合消息的通道上。
如果 S3 上传失败,我不希望文件被删除,因此不能调用上行通道的第二个订阅者。
java - 骆驼拆分器产生 NotifyBuilder 看到的不正确数量的已完成交换?
我使用骆驼 2.10.3。
假设我有一条如下所示的路线:
一个测试类在 NotifyBuilder 之后执行此操作以断言我的拆分器正在做它应该做的事情。
并假设 sampleEventsInArrayJsonString 是一个 json 数组,如下所示:
该 json 数组中有 7 个对象元素。
测试很快就会失败。但是,测试的输出清楚地显示了“Received: {}”的 7 条日志消息。
现在,这是有趣的部分……如果我在 NotifyBuilder 中设置 .whenExactlyDone(8),则测试通过。第 8 条信息究竟来自哪里?我只想说这个测试是有效的,并称它为一天,因为我知道它至少从该 json 数组中分离出消息(忽略我没有验证 NotifyBuilder 中的内容的事实),但我担心实际上通过不属于的路由发送了第 8 次交换。NotifyBuilder 看到通过该路线完成的 8 个交换而不是 7 个的原因是什么?
messaging - EAI - 消息桥与消息翻译器
我一直在阅读 Spring Integration 和 Enterprise Integration Patterns。
我被困在消息桥模式: http: //enterpriseintegrationpatterns.com/MessagingBridge.html http://static.springsource.org/spring-integration/docs/2.0.0.M3/spring-integration-reference/html /bridge.html
在消息处理方面,消息传递桥和消息转换器有什么区别?难道它们都不能让两个需要不同格式的实体一起工作吗?