我已经编写了一个分层的Web应用程序,它由一个与Java服务交互的富Web客户端(PHP)组成。 Web客户端托管在apache服务器上,并且java服务在同一台物理机器上运行(重申:整个应用程序,客户端和服务在同一台物理机器上运行)。作为IPC反模式的数据库
用户请求 - > DB < - 轮询 - > RequestHandler - > StoreResult在数据库 - > Web客户端更新页面的结果(AJAX)。
客户端和服务之间的通信使用关系数据库来传递消息。 java服务具有单线程轮询器,该轮询器查找并处理来自客户端的任何消息/请求。该系统的工作原理,但我对我的设计选择没有信心。
有没有人对此策略有任何意见?我读过使用数据库作为IPC反模式是不好的做法,或者至少是不适当的做法。但是,替代品 - XMLRPC(命名管道)似乎涉及其他依赖关系。
感谢您的期待。
您正在使用数据库作为消息队列。你应该研究的是:它是否构成一个好的消息队列?如何可靠性(不要错过任何情况下的单一信息)和吞吐量? – jrharshath 2010-09-28 18:45:06
数据库并非真正用于队列/排队。它们用于排队软件的持久性,如[ActiveMQ](http://activemq.apache.org/)。但有些数据库提供[本机队列支持(SQL Server)](http://www.developer.com/db/article.php/3640771/Getting-Started-with-SQL-Server-Service-Broker.htm).. 。 – 2010-09-28 18:47:23
别的东西:你看过栎属吗? – mario 2010-09-28 19:16:15