gpt4 book ai didi

integration - 如何处理 mule 中的 3+ 消息格式?

转载 作者:行者123 更新时间:2023-12-04 04:46:26 25 4
gpt4 key购买 nike

假设我在 Mule ESB 中处理 3 种(非常)不同的消息格式,我将它们称为 A、B 和 C。它们可以是 XML(通过套接字)、一些自定义文本格式和 SOAP 传输另一种例如,XML(它与通过套接字传输的不同)。所有这些都可以相互转化。 A、B 和 C 携带相同的信息,只是格式不同。

它们中的每一个都将在流程中拥有自己的入口点、一些格式验证等。

但是,我需要在所有这些逻辑中执行一些(很多)逻辑,例如处理/提取一些信息、基于内容的路由、丰富等。

我该怎么办?我的意思是,我对集成模式进行了一些研究,但没有发现有关这种情况或类似情况的任何信息。

更简单的方法听起来像是将其中一种格式(让我们采用 B)作为我的“主流”的“默认”格式之一,并基于它实现所有通用逻辑。然后,每个到达的消息都会被转换为 B,然后再次转换为目标格式,即使两个点使用相同的格式。

例子:

1)一个“A”击中我的应用程序,然后将其转换为“B”以执行通用逻辑,然后再次转换为“A”以进行交付。

2)一个“C”击中我的应用程序,然后将其转换为“B”以执行通用逻辑,然后将其转换为“A”以进行交付。

然后,我的问题是,Mule 是否有一个功能可以为我提供更好的方法来做这样的事情,或者上面的解决方案看起来合理?

提前致谢。

最佳答案

有几个选项,其中任何一个都可以在 Mule 中实现。前两个接近你所建议的。

规范器:http://eaipatterns.com/Normalizer.html

规范数据模型:http://eaipatterns.com/CanonicalDataModel.html

路由单:http://eaipatterns.com/RoutingTable.html

信封:http://eaipatterns.com/EnvelopeWrapper.html

您使用哪种方式取决于您的消息以及您需要对它们做什么。

例如,使用规范数据模型,您可以为每个传入类型构建一个单独的流:

  • 以自己的格式接收对象。
  • 将该对象转换为规范对象。
  • 将该消息传递到主处理流。

  • 主要流程只需要知道如何处理该对象。

    任何需要返回原始对象的端点都将位于可以反转转换的转换器后面。

    您可以选择现有对象之一并使用消息变量来记住原始格式或创建一个记住原始类型本身的新对象。

    关于integration - 如何处理 mule 中的 3+ 消息格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104264/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com