使用Nodejs、MongoDB和JAVA作为后端的实时应用程序

4

我正在开发一个使用mongodb作为数据库的web应用程序。数据通过Java应用程序插入到此数据库中,我希望能够以某种方式监视/了解是否从nodejs应用程序中插入数据,以便我可以通过socket.io向客户端推送一些信息。

我知道如果我们从等式中删除Java部分并通过nodejs进行插入,这将非常容易。但这对我来说并不是这种情况;因此,我需要指针指引mongodb - nodejs推动类似的东西..

如果解决方案仅涉及Java,Nodejs和mongodb,那将非常好。但是,如果必须包括某些其他第三方框架或技术(例如mq),我很乐意听取建议。


有多种方法可以监视Mongo数据的更改,例如mongo-watch。或者您也可以让Mongo DB操作同时ping Node应用程序等。 - Dave Newton
@DaveNewton,那么在Node.js应用程序中,当Java向MongoDB插入数据时,是否有可能知道呢? - Ahmet
这取决于两种情况:(a) Java应用程序告诉NodeJS,或者(b)您使用某种类型的Mongo watcher。 - Dave Newton
@DaveNewton 谢谢你提供的信息。我想我会先尝试 Java - Node.js 的链接。如果这不顺利,我可能会使用像 Mongo-watch 这样的第三方观察程序。 - Ahmet
2个回答

3
我建议您寻找Apache Kafka Connect,它提供源连接器来监视您的MongoDB。Confluent已创建Mongo Connector,提供上述功能。您可以通过上面的链接进行进一步研究。Apache Kafka是消息队列系统。

2
我建议Java App在更改数据时通知前端(node)应用程序,这样系统可以负责知道有什么已经更改并且如何更改。监控数据库的变化听起来是个好主意,而且可能会起作用,但它更有可能会给你带来问题。请考虑以下几点:
  • 需要监视哪些数据?
  • 哪些变化被认为是值得采取行动的?
  • 当您更改数据更新方式时会发生什么情况?
  • 如何确定更改是原子性的?
如果简单地告诉前端已经发生了什么变化以及如何处理,从而让前端自己去处理这些问题,那么所有这些问题都至少会得到缓解。
如何告诉前端有很多方法可供选择。从Java到前端进行简单的HTTP调用是一种简单的方法,但是有时候不太可靠且难以预测(负载方面)。像Amazon SNS这样的队列/通知服务可能更加健壮。

这是一个晚期的评论,但我最终将相关数据POST到了Node.JS,然后通过Java应用程序进行原子插入到Mongo DB中。 - Ahmet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接