标签:导致 写入 数据 targe 传递 实时监控 art 接口 通过
1.nsq是Go语言编写的,开源的内存分布式消息队列中间件
2.可以大规模的处理每天数以十亿级别的消息
3.分布式和去中心化拓扑结构,无单点故障
4.地址https://github.com/nsqio/nsq
1.异步处理,把非关键流程异步化,提高系统的响应时间和健壮性
2.应用解耦,通过消息队列。
想必同学们都点过外卖,点击下单后的业务逻辑可能包括:检查库存、生成单据、发红包、短信通知等,如果这些业务同步执行,完成下单率会非常低,如发红包,短信通知等不必要的流程,异步执行即可。
此时使用MQ,可以在核心流程(扣减库存、生成订单记录)等完成后发送消息到MQ,快速结束本次流程。消费者拉取MQ消息时,发现红包、短信等消息时,再进行处理。
场景:双11是购物狂节,用户下单后,订单系统需要通知库存系统,传统的做法就是订单系统调用库存系统的接口。
这种做法有一个缺点:
引入消息队列
nsq组件
nsqd 负责接收,保存以及发送消息给消费者,的一个进程 nsqlookupd 负责维护所有nsqd的状态,提供服务发现的进程 nsqadmin 一个web管理平台,实时监控集群以及各种管理任务,(如topic,channel等任务)
架构图
概念
topic主题概念,对应一个具体的队列,如订单数据放到order_queue这个topic channel概念,每个消费者对应一个channel,实现消息可重复消费
nsq特性
消息默认不持久化,可配置成持久化 每条消息至少传递一次,保证消息不丢失,可能重复消费,需要业务去重 消息不保证有序
下载地址
https://nsq.io/deployment/installing.html
组件
nsqd 消息发送,存储,转发 nsqlookupd 服务发现 nsqadmin 管理后台 启动步骤:https://nsq.io/overview/quick_start.html 启动nsqlookupd 默认监听4160 启动nsqd --lookupd-tcp-address=127.0.0.1:4160 启动nsqadmin --lookupd-http-address=127.0.0.1:4161 可以访问http://127.0.0.1:4171/lookup看到后台,在Lookup视图创建topic
生产者
标签:导致 写入 数据 targe 传递 实时监控 art 接口 通过
原文地址:https://www.cnblogs.com/open-yang/p/11256962.html