2021年3月11日

NSQ(8)-有赞相关改进

摘要: 如何保证消息队列的高可用(HA) NSQ 本身就是一个分布式消息队列,且支持水平扩展,无单点故障,能在无中断的情况下无缝添加集群结点。 nsq用到了集群去保证整个服务的高可用,但并不能保证单个topic的高可用,不过你可以用特定方案间接去保证。 【注】producer 指定在某台nsqd节点发送生产 阅读全文

posted @ 2021-03-11 14:10 爱笑的张飞 阅读(681) 评论(0) 推荐(0) 编辑

NSQ(7)-nsq存在的问题

摘要: nsq存在的缺陷 部署的难度 ​ nsq提供了一种消费者端进行服务发现的模型,所以无需告诉消费者去哪寻找对于的主题(Topic)在哪个nsqd实例上。 ​ 然而,它并没有提供一种方案去解决一个生产者应该把消息发布到哪个nsqd实例上的问题,虽然nsqd推荐一个生产者对于部署一个nsqd实例,来实现p 阅读全文

posted @ 2021-03-11 14:09 爱笑的张飞 阅读(597) 评论(0) 推荐(0) 编辑

NSQ(6)-nsq相关策略

摘要: 1:nsq的流量控制 RDY 消息中间件的实现无非两种套路,一种让客户端pull,典型的比如kafka便是如此,而另一种则是push,也就是让客户端不需要做任何操作,只需要做好conn便可以源源不断收到服务端的推送,典型的代表就是我们今天介绍的nsq。 pull的优势在于客户端可以自己做流控,比如客 阅读全文

posted @ 2021-03-11 14:08 爱笑的张飞 阅读(473) 评论(0) 推荐(0) 编辑

NSQ(5)-nsqlookupd执行流程源码剖析

摘要: nsqlookupd执行流程源码剖析 func (p *program) Start() error { opts := nsqlookupd.NewOptions() flagSet := nsqlookupdFlagSet(opts) flagSet.Parse(os.Args[1:]) if 阅读全文

posted @ 2021-03-11 14:07 爱笑的张飞 阅读(130) 评论(0) 推荐(0) 编辑

NSQ(4)-nsqd执行流程

摘要: nsqd执行流程源码剖析 func (n *NSQD) Main() error { exitCh := make(chan error) var once sync.Once exitFunc := func(err error) { once.Do(func() { if err != nil 阅读全文

posted @ 2021-03-11 14:06 爱笑的张飞 阅读(176) 评论(0) 推荐(1) 编辑

NSQ(3)-消费者消费消息流程

摘要: 消费者消费消息源码剖析 func (c *ConsumerHandler) HandlerMsg() { conf := nsq.NewConfig() consumer, err := nsq.NewConsumer(topic, "ch", conf) if err != nil { logs. 阅读全文

posted @ 2021-03-11 14:04 爱笑的张飞 阅读(988) 评论(0) 推荐(0) 编辑

NSQ(2)-生产者发布消息流程

摘要: 生产者发送消息源码剖析 func (c *ProducerHandler) SendMsg() { conf := nsq.NewConfig() p, err := nsq.NewProducer("127.0.0.1:4150", conf) if err != nil { logs.Error 阅读全文

posted @ 2021-03-11 14:02 爱笑的张飞 阅读(207) 评论(0) 推荐(0) 编辑

NSQ(1)-基本介绍

摘要: nsq 介绍 NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。 NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。 NSQ具有分布式 阅读全文

posted @ 2021-03-11 14:00 爱笑的张飞 阅读(427) 评论(0) 推荐(0) 编辑

导航