有可能以某种方式在Java项目中使用Zend附带的一些PHP类吗?我想总有办法,但是怎么样?
解决方法:
问题你应该先问问自己
首先你应该问自己一些问题,这可以帮助你使用给你最好的答案(因为编程很多次是为了权衡):
>你可以原生运行PHP代码:
如果无法通过(http / CLI)本地运行PHP代码,那么您唯一的选择就是尝试Quercus是否能完成这项工作.
> PHP具有多少并发性:
我们假设您不会多调用PHP.然后我会考虑编写一个简单的Web服务(见下文),因为这是最容易实现的.如果不是在后台运行的PHP deamon等待工作(PHP)处理它从java消息队列(deamon)接收,并将消息发送到队列.
> PHP应该多快响应java:
如果快,那么一个守护进程就可以了.
但我首先建议尝试实施最简单/最快的解决方案并对其进行基准测试.最快的解决方案可以在几分钟内完成.越困难可能需要一些时间.
解决方案:
> Quercus:如果您无法本机运行PHP(CLI / HTTP),那么这是您唯一的选择.
>简单的网络服务:
假设您从Java程序中调用http://localhost:8181/zend/doZend.php?a=a&b=b.这会叫:
> doZend函数,具有来自相应PHP服务的函数参数a& b
>将结果返回给称为PHP服务的Java程序.
>如果你在* nix,那么named pipe也可以是快速/简单的解决方案.我认为这样可以执行我认为队列部分在高负载下会表现得更好,但是这个更容易实现.
> java / C中的MessageQueue:编写一个从队列中读取的PHP deamon(redis阻塞列表pop(* nix)/编写自己的java版本)并将答案放在另一个阻塞队列上,当你的Java程序从中读取答案时可用.这个选项有点难以实现,但如果扩展是必须的,我认为这是要走的路. redis部分可以(如果不可能编译它)也被一个简单的java deamon取代,如果需要,它只有一个阻塞队列.但redis变体真的很快/稳定,我真的会顺其自然.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。