【问题标题】:ESB for Python? [closed]用于 Python 的 ESB? [关闭]
【发布时间】:2012-05-10 19:53:46
【问题描述】:

在工作中,我们正在讨论选择现成的全栈 ESB(企业服务总线 -- http://en.wikipedia.org/wiki/Enterprise_service_bus)与围绕 RabbitMQ 等 AMQP 系统自行开发。

部分担忧是我们的生态系统是 PHP 尽可能快地迁移到 Python,而我们已经拥有的 API 都以 JSON 格式传递消息。 ESB 和“SOA 解决方案”的搜索空间真的非常非常脏。那个或这个都不是 Python Thing(tm)。因此我在这里问:似乎我们考虑过的所有全栈 ESB 解决方案都主要集中在集成基于 SOAP 的组件上。这似乎是很多我们可能不想做的消息的双重包装和解包。此外,如果可以的话,我们真的很想用 Python 编写我们的服务到 ESB 适配器。

我应该在这里指出,PHP/Python 生态系统是内部的——我们的许多客户都是相当隐蔽的组织,他们使用与我们的应用程序集成的大型单一企业软件。他们会对面向客户的 API 的 SOAP、XML-RPC 等感到满意。我们已经收到了请求。因此,在边界,我们最终可能会同时提供基于 JSON 和基于 SOAP 的服务;只是不在内部。

tl;dr: 有没有人喜欢使用 Python 应用程序的全栈 ESB?与您合作过的不受欢迎的人呢(无论如何,它有多么糟糕)?你认为包装像 RabbitMQ 这样的东西对于 PHP/Python 生态系统来说是一个更好的主意吗?

【问题讨论】:

    标签: python soa rabbitmq esb amqp


    【解决方案1】:

    这确实是一个大问题,如果可以的话,更像是几个问题合二为一。所以如果我误解了你,请原谅我。

    根据定义,ESB 并没有真正与您在实现应用程序时选择的语言相关联。因此,无论您想以 SOA 方式连接的应用程序是用 PHP 还是 Python 编写的,您都应该能够在 SOA 中公开它们。另一方面,JSON 在 SOA 世界中是一个有点偏离的选择,这个选择非常重要。

    许多 COTS ESB 都提供某种程度的 REST 支持。 Mule、ServiceMix、WSO2、JBoss 是一些开源的。如果您更喜欢与商业供应商合作,我相信 Tibco 和 Oracle 要么具有开箱即用的支持,要么可以通过一些编码来实现。

    您选择使用任何消息代理(例如 RabbitMQ 或 AMQP)实际上与传输有关 - 这又不是真正直接相关的。再说一次,如果您的目标是在您的应用程序之间添加消息传递,那么这是一个我无法真正回答的有效问题。

    如果您可以写出您对 ESB 感兴趣的主要动机,这将有助于获得更好的答案。

    HTH

    【讨论】:

      【解决方案2】:

      哇...这就是问题所在,我无法完全回答...但是既然您问了,那就是众所周知的 2 美分:

      RabbitMQ 很不错。我将它用于在科学计算网格上实现缓存的多代理系统中的实时消息传递。 RabbitMQ 的一个很好的特性是您可以推送任意(包括二进制)消息,这可能是一个很好的性能特性。 (也许使用 Hessian 协议的序列化/反序列化?)

      我对 RabbitMQ 的唯一关注是继续支持 AMQP 的 python 库。当前的库是功能性的,我已经使用过它们……但它们存在的时间不长,而且我不确定对此类工作感兴趣和支持的社区有多大。也就是说,最近似乎 RabbitMQ(AMQP 和一般的消息传递)正在成为一个更热门的话题,希望这将拓宽在 python - AMQP 接口库上工作的基础。

      【讨论】:

      • 是的,一位同事正在使用 RabbitMQ 作为试点重新实现我们过去的灾难之一,并且就在几分钟前发送了一封电子邮件,提到了更快的序列化。实际上,是的,如果我们选择了错误的 AMQP 库并且它被遗弃了,这将是一种痛苦的方式,或者我们不得不撕掉并替换或维护废弃软件。谢谢!
      • zato 专为以 python 为中心的应用程序而设计。他们发表了一篇关于 esb 的文章 [1] 很棒。 [1]zato.io/docs/intro/esb-soa.html
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 2023-03-25
      • 2013-09-24
      相关资源
      最近更新 更多