NSQ是一个实时分布式消息传递平台,设计用于大规模操作,能每天处理数十亿条消息。
它促进了没有单点故障的分布式和分散拓扑,支持容错和高可用性,并提供可靠的消息传递保证。
优缺点
优点:
1、部署非常方便,没有任何环境的依赖,一个二进制可执行文件
2、轻量级没有过多的配置参数,只需要简单配置即可直接使用
3、性能极高(基于go编写)
4、消息不存在丢失的情况
缺点:
1、消息无顺序
2、节点之间没有消息复制
3、没有鉴权
将注册信息写入数据库成功后,同时进行发送注册邮件和发送注册短信的操作。而所有任务执行完成后,返回信息给客户端。同串行方式相比,并行方式可以提高执行效率,减少执行时间。
并行方式:
异步方式:
场景说明:用户下单以后,订单系统需要通知库存系统。
传统的做法为:订单系统调用库存系统接口。如下图所示:
传统方式具有如下缺点:
1、假设库存系统访问失败,则订单减少库存失败,导致订单创建失败
2、订单系统同库存系统过度耦合
那么如何解决上述的缺点呢?需要引入消息队列,引入消息队列后的架构如下图所示:
应用场景:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。为解决这个问题,一般需要在应用前端加入消息队列。
1、可以控制参与活动的人数;
2、可以缓解短时间内高流量对应用的巨大压力;
流量削锋处理方式系统图如下:
原文:https://www.cnblogs.com/jasonminghao/p/12387558.html