PHP-Java 互操作 - Gearman 还是 PJB?

Posted

技术标签:

【中文标题】PHP-Java 互操作 - Gearman 还是 PJB?【英文标题】:PHP-Java interop - Gearman or PJB? 【发布时间】:2011-07-21 00:40:04 【问题描述】:

php 调用 Java 的总体最佳选择是什么?

Gearman PHP/Java Bridge

还是完全不同的东西?我所说的“最好”是指易于使用、可靠、透明(用于调试目的)——整个玉米卷饼。

换句话说,这两种解决方案都有什么重大缺点吗?

编辑:原因是 PHP 站点需要使用 3rd 方 SOAP 服务。 WSDL 中定义的类型层次对于任何纯 PHP 客户端来说似乎都太复杂了。

【问题讨论】:

【参考方案1】:

PHP/Java 桥是功能性的,但我们发现它倾向于将僵尸 JVM 进程作为 Apache 子进程留下,必须kill -9'd 才能摆脱。我们最终每天运行一个 cron 作业来解决这个问题。我们只将它用于一个特定的类(某人的 horrid SOAP 端点的接口类),在类型杂耍方面有点挑剔,但它确实对我们有用。 (僵尸进程问题可能是因为我们当时使用的PHP是史前版本,所以现在可能已经修复了。)

我对 Gearman 和 Java 没有任何经验,但在 PHP 方面有很多经验。在大多数情况下,与我们一起工作很愉快。最烦人的问题是处理来自调用者的异步更新需要一些非常冗长的代码来处理所有可能的状态。不过,对于“即发即忘”和“即发即回”即时结果 RPC,它真的很难被击败。

【讨论】:

干杯 - 我们遇到了完全相同的问题,一个麻烦的 SOAP 服务 我认为没有不麻烦的。该供应商提供销售税服务,并且由于互操作问题,非常不愿推荐 Java 客户端以外的任何产品。【参考方案2】:

Gearman 可能并不是您真正想要的解决方案(除非您真的想要一个作业队列而不是某种形式的 RPC)。它可以以阻塞/同步方式运行,但它给聚会带来了很多开销(代码/应用程序/等方面),因为我猜这是一项简单的任务?

在不知道您要做什么的情况下,我将提出一些建议。 XML-RPC(可能比 SOAP 稍微不那么邪恶!)或者像 Facebook 的 Thrift[1]、Apache Avro[2] 或 Google Protocol Buffers[3] 之类的?

[1]http://incubator.apache.org/thrift/

[2]http://avro.apache.org/

[3]http://code.google.com/apis/protocolbuffers/

【讨论】:

谢谢 - 我已经编辑了问题以描述我们为什么需要这个,但我会研究这些建议 啊哈,我明白了问题...我想您已经尝试过所有 PHP 的 SOAP 库,例如 Zend_Soap [framework.zend.com/manual/en/zend.soap.html] 和 NuSoap [sourceforge.net/projects/nusoap/]?您拨打的电话是否会(或需要)阻止? (抱歉问了这么多问题)

以上是关于PHP-Java 互操作 - Gearman 还是 PJB?的主要内容,如果未能解决你的问题,请参考以下文章

分布式调用gearman安装

JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)

高CPU业务场景下的任务分发方案Gearman搭建一览

互操作:具有 C# COM 服务器字节数组参数的 C++ COM 客户端 - 数组是复制入/出还是直接访问?

互操作性和去信任化的两难困境,到底需要治标还是治本?

无法解析以下工件:external.gearman.service:gearman:jar:0.6.6