Python的ESB?

2024-04-29 06:08:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

部分问题在于,我们的生态系统是PHP向Python移动的最快速度,以及我们已经有哪些api以JSON格式传递消息。esb和“SOA解决方案”上的搜索空间真的,真的被污染了;要么就是这不是Python的东西(tm)。因此,我在这里问:似乎我们考虑过的所有完整堆栈ESB解决方案都主要集中在集成基于SOAP的组件上。这看起来像是很多我们可能不想做的信息的双重包装和拆封。另外,如果可以的话,我们真的很想用Python将我们的服务编写到ESB适配器。

这里我要注意的是,PHP/Python生态系统是内部的——我们的许多客户都是相当保守的组织,他们使用大型的单片企业软件来集成我们的应用程序。对于我们面向客户的api,他们很乐意使用SOAP、XML-RPC等。我们已经有要求了。因此,在边界处,我们最终可能同时提供基于JSON和基于SOAP的服务;而不是在内部。

tl;dr:是否有人喜欢将全堆栈ESB用于Python应用程序?和你一起工作过的一个不受欢迎的人呢(不管怎样,有多可怕)?对于PHP/Python生态系统,您认为包装RabbitMQ之类的东西更好吗?


Tags: apijson应用程序http客户堆栈rabbitmqwikipedia
2条回答

哇…这是个很好的问题,我不可能完全回答…但是既然你问了这2美分:

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

我对RabbitMQ的唯一关注是继续支持AMQP的python库。目前的图书馆是功能性的,我已经使用过了……但它们还没有出现太久,我不确定社区有多大,他们对这项工作感兴趣并支持这项工作。也就是说,RabbitMQ(AMQP,和一般的消息传递)最近似乎正在成为一个热门话题,希望这将拓宽python-AMQP接口库的基础。

如果可以的话,这真的是一个大问题,更像是一个问题中的几个问题。如果我误解了你,请原谅。

根据定义,ESB在实现应用程序时并不真正与您选择的语言相耦合。因此,无论您希望以So a方式连接的应用程序是用PHP还是Python编写的,您都应该能够在SOA中公开它们。另一方面,在SOA世界中,JSON是一个不可选择的选择,这个选择非常重要。

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

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

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

高温高压

相关问题 更多 >