如何在PHP和Java程序之间进行通信?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在PHP和Java程序之间进行通信?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1469字,纯文字阅读大概需要3分钟。
内容图文
我正在开发一个Web应用程序,它经常需要运行计算密集型查询,其结果存储在一个单独的表中.使用MySQL,此查询大约需要500毫秒(尽可能优化,相信我).为了消除这个瓶颈,我创建了一个Java程序,它将相关的DB数据加载到内存中并执行查询本身;它需要大约8毫秒(我有点自豪).我想使用这个Java程序来获取结果,如果它失败或不可用,则故障转移到PHP运行MySQL查询.
由于将数据加载到Java应用程序需要一些时间,因此它将加载一次并继续作为后台进程运行.现在,问题是我如何通过PHP与这个Java应用程序进行通信?
记住:
>多个PHP实例可能需要同时与此Java进程通信.
>如果找不到Java实例(例如:由于某种原因它崩溃),PHP应该通过使用较旧和较慢的MySQL方法来进行.
>可以接受诸如Memcache之类的中间过程.
>理想情况下,该解决方案可以抵御竞争条件.
>我最好不要使用MySQL作为中介.
我打算使用Memcache,其中PHP将写入已知密钥并轮询,直到该密钥更改为“已完成”,同时Java将轮询该密钥,并且一旦发现某些内容执行该作业并将其设置为“已完成”.但是,由于两个原因,这不起作用.首先,PHP和Java使用序列化对象读取/写入Memcache,并且没有办法改变它,我不希望Java反序列化PHP对象,反之亦然 – 它太乱了.其次,这不符合ACID – 如果在那里建立的队列将存在竞争条件.
就目前而言,我坚持轮询MySQL“选择”以查看作业是否已脱离队列,这远非最佳解决方案,因为轮询时间需要较慢,因此MySQL不会过于频繁.我需要更好的解决方案!
谢谢.
编辑:Duh.看起来我将在Java中使用某种SocketServer,我对此并不熟悉.一个例子可能有帮助:)
解决方法:
我在Java端使用套接字服务器,在PHP端使用PHP套接字.效果很好.
没有必要使用PHP / Java桥接过度复杂化,也不需要创建Web服务器的开销.
套接字工作得很好,我实际上有点惭愧我甚至提出问题开始工作.
内容总结
以上是互联网集市为您收集整理的如何在PHP和Java程序之间进行通信?全部内容,希望文章能够帮你解决如何在PHP和Java程序之间进行通信?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。