我正在寻找一种有效的方式从节点订阅riak中的事件.我希望能够收到来自riak的条目变更的通知.
例如,当一个node.js服务器更新条目时,另一个使用和观察该条目的服务器会自动接收更新的条目或有关其更新的通知.
如果这是不可能的,那么有效的消息系统可以在node.js服务器上有效使用吗?
Riak实现了所谓的Pre和Post提交钩子.写入成功后将触发的post-commit(可能是你想要的)只能用Erlang代码编写,而Riak需要配置为触发你的自定义Erlang函数,作为相应存储桶的属性.
根据您的需求和应用程序的规模,Erlang设置可以有多个选项来通知您的Node.js服务器.编写一个向您的Node.js服务器发送HTTP请求的Erlang函数会相对容易,但这会带来很多开销,这可能很适合您的应用程序.更好,但稍微复杂一点的是使用像Redis或ZeroMQ提供的那样的pub/sub系统(仅举几个例子),这些系统经过了经过实战考验,经证实在重载下表现非常好.如果您想使用ZeroMQ,请参阅本指南,了解如何实现非常可靠的pub/sub.
这两个消息传递工具以及许多其他工具都可以通过Riak或Node.js实例监视条目的Node.js实例通知,这些实例正在有效地修改数据.第二个选项(Node.js到Node.js)可能更简单,因为如果你不熟悉它,它不需要你学习Erlang.这两个工具都有node.js库,这些库经过了很好的测试:
如果您使用它们从Riak内部发送通知作为提交后挂钩,这里是相应的erlang驱动程序:
| 归档时间: |
|
| 查看次数: |
1333 次 |
| 最近记录: |