ZeroMQ 和 Sails.js

Posted

技术标签:

【中文标题】ZeroMQ 和 Sails.js【英文标题】:ZeroMQ and Sails.js 【发布时间】:2014-09-08 13:00:48 【问题描述】:

在 Sails.JS 应用程序中添加 ZeroMQ 套接字的推荐方法是什么。

我应该定义一个 Sails 钩子来处理套接字配置和连接,并在不同的控制器中使用一个全局范围的套接字对象,还是有其他更好的解决方案?

【问题讨论】:

【参考方案1】:

如果您要做的是设置一个 ZeroMQ 套接字来为整个应用程序提供服务,那么使用自定义 Sails 挂钩将是一个非常好的解决方案。除了将套接字对象设置为全局对象外,您还可以将其添加为钩子的属性(例如,将其公开为sails.hooks.zeromq.socket),或者将其本地限定为钩子文件并通过钩子公开其方法(例如sails.hooks.zeromq.send, sails.hooks.zeromq.on)。

Sails 目前不提供跨项目共享自定义挂钩的简单方法,但它在我们的路线图中实施一个类似于我们目前为 generators 提供的系统,您可以在其中添加类似这个到.sailsrc 文件:

"hooks": 
    "zeromq": "path/to/zeromq/hook/code"

因此,如果您为 ZeroMQ 制作一个钩子并将其开源,它可能对其他人来说是一种宝贵的资源!

目前没有大量关于自定义挂钩的文档,但 YouTube 上有这个 riveting video 详细讨论了该主题。

【讨论】:

感谢您的回答,我遵循了钩子方式并最终获得了所需的功能,尽管它不像我想要的那样通用。我的需要非常类似于将 JSON 文档存储在 NoSQL DB 中,但我不需要直接发送到 DB,只需将其推送到另一个 ZeroMQ 组件。对于这个用例,我开始觉得也许 Waterline 适配器(只有一个 CREATE 方法)可能更适合,在推送之前增加模型验证的价值(我现在正在手动进行)。有意义吗?

以上是关于ZeroMQ 和 Sails.js的主要内容,如果未能解决你的问题,请参考以下文章

ZeroMQ使用汇总

grpc 和 zeromq 比较

Apache Thrift 和 ZeroMQ 的区别

zeromq的安装,部署(号称最快的消息队列)

zeromq实践

zeromq 和 python:没有睡眠命令不发送