2011-12-13 52 views
0

我需要从Java应用程序发出一个node.js服务器(任何websocket服务器都会这样做),该应用程序对每个MySQL操作进行实时运行(并且时间敏感)。从Java/MySQL向node.js发送信号的最有效方式是什么?

我在寻找最好的选择,到目前为止想出了:

一)关于MySQL触发
的MySQL会那么,在它自己的,信号WebSocket的服务器推更新到客户端。

B)的Java应用程序呼叫服务器
的Java将信号的node.js /不管推新数据到客户端。

我会假设让MySQL处理信号的工作量node.js对于Java应用程序(对时间敏感)会更有效。

还有第三种方法吗?比下面描述的那些更好吗?

回答

0

首先,您必须确定哪个实体/活动是逻辑生成的信号。它真的是MySQL上的插入操作还是Java应用程序执行的插入操作。是否有任何其他应用程序正在修改MySQL DB?如果没有,我会亲自将所有事件发布到node.js服务器将要侦听的队列(另一个进程)。使用具有Java和Node.js客户端的队列在这里会有所帮助。这样,数据库上的负载将被最小化,并且架构将独立于DB /应用程序(假设您将所有使用MySQL的应用程序的更新发布到队列中)。

一个这样的队列的例子是Beanstalkd

2

您应该使用类似RedisZeroMQ的东西来创建Java和Node之间的通信通道。 Java会通过该通道发送一条消息,Node会拦截它并推送给MySQL,当完成时它会回应。

对我来说这似乎很好,因为Java不会等待任何响应,并且因为Node和MySQL之间的异步通信(带有回调和触发器)。

相关问题