在工作中,我们正在讨论选择现成的全堆栈ESB (Enterprise - http://en.wikipedia.org/wiki/Enterprise_service_bus )还是围绕RabbitMQ这样的AMQP系统进行滚动。
我们关注的部分问题是,我们的生态系统正在尽可能快地向Python迁移,以及我们已经拥有的API都在JSON中传递消息。ESB和'SOA解决方案‘上的搜索空间确实受到了严重的污染;要么是那样,要么就是这个不是Python的东西(Tm)。因此,我在这里问:我们考虑过的所有完整堆栈ESB解决方案似乎主要集中在集成基于SOAP的组件上。这似乎是很多信息的双重包装和展开,我们可能不想这样做。此外,如果可以的话,我们很想用Python编写服务到ESB适配器。
这里我要指出的是,PHP/Python生态系统是内部的--我们的许多客户都是相当死板的组织,使用的是大型的、集成了我们的应用程序的企业软件。对于面向客户的API,他们会对SOAP、XML等感到满意。我们已经收到请求了。因此,在边界,我们最终可能会同时提供基于JSON和基于SOAP的服务,而不是在内部提供。
tl;dr:有谁喜欢在应用程序中使用全堆栈ESB?和你一起工作过的一个不受欢迎的人怎么样(不管怎样,这有多糟糕)?您认为包装像RabbitMQ这样的东西对于PHP/Python生态系统来说是一个更好的主意吗?
发布于 2012-05-17 15:48:29
如果可以的话,这真的是个大问题,更像是一个问题。所以如果我误解了你的话请原谅。
根据定义,ESB与您在实现应用程序时所选择的语言并没有真正的耦合。因此,无论您想要以SOA方式连接的应用程序是用PHP还是Python编写的,您都应该能够在SOA中公开它们。另一方面,在SOA世界中,JSON是一个不受欢迎的选择,这个选择非常重要。
许多COTS ESB提供了一定程度的REST支持。骡子、ServiceMix、WSO2、JBoss都是开源的。如果你喜欢与一个商业供应商,我相信Tibco和甲骨文要么有开箱即用的支持,或可以实现一点编码。
您选择使用任何消息代理(如RabbitMQ或AMQP )实际上都是关于传输的--这同样不是真正直接相关的。然后,如果您的目标是在应用程序中添加消息传递,那么这是一个我无法真正回答的有效问题。
如果您能够写出您对ESB感兴趣的主要动机,这将有助于找到更好的答案。
HTH
发布于 2012-05-10 20:18:34
哇.这是个很好的问题,而且我不可能回答它,fully...but,因为你问的是俗话说的2美分:
RabbitMQ很不错。我将它用于多代理系统中的实时消息传递,该系统在科学计算网格上实现缓存。RabbitMQ的一个好特性是您可以推送任意消息(包括二进制消息),这可能是一个很好的性能特性。(可能使用来自Hessian协议的序列化/反序列化?)
我对RabbitMQ的唯一关注是对AMQP的python库的持续支持。当前的库是功能性的,我使用了them...but --它们还没有出现很久,我也不知道这个社区对这些工作感兴趣和支持的范围有多大。尽管如此,RabbitMQ ( AMQP,以及一般的消息传递)似乎正成为最近一个更热门的话题,希望这将拓宽开发python接口库的基础。
https://stackoverflow.com/questions/10541195
复制相似问题