从 PHP 调用 Java 的总体最佳选择是哪个?
还是完全不同的东西?我所说的“最好”是指易于使用、可靠、透明(用于调试目的)——整个玉米卷饼。
换句话说,这两种解决方案都有什么重大缺点吗?
编辑:这样做的原因是需要使用第 3 方 SOAP 服务的 PHP 站点。WSDL 中定义的类型层次对于任何纯 PHP 客户端来说似乎都太复杂了。
从 PHP 调用 Java 的总体最佳选择是哪个?
还是完全不同的东西?我所说的“最好”是指易于使用、可靠、透明(用于调试目的)——整个玉米卷饼。
换句话说,这两种解决方案都有什么重大缺点吗?
编辑:这样做的原因是需要使用第 3 方 SOAP 服务的 PHP 站点。WSDL 中定义的类型层次对于任何纯 PHP 客户端来说似乎都太复杂了。
PHP/Java 桥是功能性的,但我们发现它倾向于将僵尸 JVM 进程作为必须kill -9
摆脱的 Apache 子进程留下。我们最终每天运行一个 cron 作业来解决这个问题。我们只将它用于一个特定的类(某人可怕的SOAP 端点的接口类),在类型杂耍方面有点挑剔,但它确实对我们有用。(僵尸进程问题可能是由于我们当时使用的史前PHP版本,所以现在可能已经修复了。)
我没有任何使用 Gearman 和 Java 的经验,但有很多使用 PHP 的经验。在大多数情况下,与我们一起工作很愉快。最烦人的问题是处理来自调用者的异步更新需要一些非常冗长的代码来处理所有可能的状态。但是,对于“即发即忘”和“即发即回”即时结果 RPC,它确实很难被击败。
Gearman 可能并不是您真正想要的解决方案(除非您真的想要一个作业队列而不是某种形式的 RPC)。它可以以阻塞/同步方式运行,但它给聚会带来了很多开销(代码/应用程序/等方面),因为我猜这是一个简单的任务?
在不知道您要做什么的情况下,我将提出一些建议。XML-RPC(可能比 SOAP 稍微不那么邪恶!)或者可能是 Facebook 的 Thrift[1]、Apache Avro[2] 或 Google Protocol Buffers[3] 之类的东西?