CNode

发布了一个基于 redis 的 node 版本的 mq。简单耐用。欢迎大家试用下哈

分享
WWenNingZhang发布于7 年前最后回复7 年前9 回复6983 浏览0 收藏
查看回复

回复 (9)

W
wangkunmeng#1·7 年前

简单看了下,如有错误请别见怪 1、通过zdd排序,hset设置的消息。没看到删除。 2、hash存放数据key过多的情况下没看到分组。 3、消息多个订阅者情况、以及消息处理失败。

W
WenNingZhang#2·7 年前
引用 wangkunmeng简单看了下,如有错误请别见怪 1、通过zdd排序,hset设置的消息。没看到删除。 2、hash存放数据key过多的情况下没看到分组。 3、消息多个订阅者情况、以及消息处理失败。

@wangkunmeng hi 先谢谢你的指点哈 1、这是mq。消息的删除是在消费后删除的,你如果仔细看代码是通过一段lua脚本删除的。 2、暂时没考虑分组的意义是啥? 如果是怕field-value 数量的限制,也有2^32-1 个。应该是够用的。 3、暂时确实还没想用发布-订阅的模型,后期可能会考虑。现阶段只支持点对点(queue)的模型。消息处理失败的这种情况确实没考虑过,这点容我想下再回答。

R
riichg5#3·7 年前

bull 不香吗,不用重复造轮子,遇到问题可以一起造。

W
WenNingZhang#4·7 年前
引用 riichg5bull 不香吗,不用重复造轮子,遇到问题可以一起造。

@riichg5 这个 bull 或者 Agenda 之类是属于 队列(queue)。ioredisMq的是 mq。我觉得还是有本质的区别的。 另外说下发布这个依赖的原因,其实和 rsmq功能类似,但是 rsmp 是基于 redis 这个依赖。我们有个项目中代码依赖于ioredis这个项目,如果使用rsmp 。还需要多安装一个依赖 redis,这是我比较厌烦的。另外rsmp中有发送消息不可见的功能(vt参数控制),个人觉的比较鸡肋,消息处理完成后,直接删除就行了。因此基于上面两个问题开发了 ioredismq。

W
wangkunmeng#5·7 年前
引用 riichg5bull 不香吗,不用重复造轮子,遇到问题可以一起造。

@riichg5 英语水平太差,一个月前研究了会没看懂文档和Demo在讲啥...中文科普有点少。后来就看了AMQP资料,感觉还是RabbitMQ可能更方便点。

W
WenNingZhang#6·7 年前
引用 wangkunmeng@riichg5 英语水平太差,一个月前研究了会没看懂文档和Demo在讲啥...中文科普有点少。后来就看了AMQP资料,感觉还是RabbitMQ可能更方便点。

@wangkunmeng 个人觉的,数据量小的情况下,向 redis 这种 mq 是可以解决的。如果需要数据量大的mq。kafka 或者RabbitMQ可以考虑下,毕竟是这些都是分布式的mq。量少的话就没必要了。

R
riichg5#9·7 年前
引用 wangkunmeng@riichg5 英语水平太差,一个月前研究了会没看懂文档和Demo在讲啥...中文科普有点少。后来就看了AMQP资料,感觉还是RabbitMQ可能更方便点。

@wangkunmeng bull 在基于redis的消息队列里面,属于node里面非常成熟的一款,并且非常轻量。适合中小规模的消息处理中间件。我非常推荐使用。之前我还用过kue,没有bull成熟。我最早接触到的用redis做消息队列组件,比较成熟的是ruby里面的sidekiq,以前sidekiq是免费的,现在开始做收费了。node的bull不比当年我使用的sidekiq差。 bull真的好用,哈哈

参与回复
登录后即可参与回复。登录