1.nsq 主要的二个文章。
http://www.infoq.com/cn/news/2015/02/nsq...
http://wiki.jikexueyuan.com/project/nsq-...
。我想问,这个东西做什么用,主要用在什么地方。以前是app开发,不是很了解什么叫消息系统。
求解答 它饿主要用途,能作为实时聊天的服务器么?又或者推送之类的
1.nsq 主要的二个文章。
http://www.infoq.com/cn/news/2015/02/nsq...
http://wiki.jikexueyuan.com/project/nsq-...
。我想问,这个东西做什么用,主要用在什么地方。以前是app开发,不是很了解什么叫消息系统。
求解答 它饿主要用途,能作为实时聊天的服务器么?又或者推送之类的
7 回答5.4k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.4k 阅读
1 回答3.4k 阅读
2 回答939 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
NSQ是一个基于Go语言的分布式实时消息平台.
NSQ 是一个消息平台,主要用来发送消息到订阅者。假设有这样一个场景:用户点击了“确认收货” 按钮。后续可能有以下几个动作需要触发:
这个商品有送积分的活动,需要送积分给用户;
这个订单的状态要修改为已经完成;
这个商品的销量计数要累加;
这个用户的会员等级可能会按规则发生变化(半年内买够了xx元升级到yy会员);
......可能还有更多
这四个后续行为比较耗时,如果在点击按钮之后依次处理会造成用户体验会很差。我们可以把点击按钮这个事件看作一个消息,下面四个动作看作是这个消息的订阅者。我们需要当消息产生时,自动的通知到所有订阅者。这就是消息平台需要做的最简单的工作。
使用 NSQ 来实现上面的场景:
点击事件会发布( NSQ 的 pulish 操作)一个消息到某个话题( topic 假设名字是 topic_delivery_made)中,你可以按需存数据到这个消息体(payload)中。送积分、用户等级计算、商品销量计算会各自订阅(subscribe)这个话题(topic_delivery_made),当话题中有新的消息时,这四个订阅者都会收到一个消息,消息中包括相同的消息体(payload)。