前面的总结中提到过这个玩意,所以简单说说,win上面的测试验证

网上有比较合适的博文,我先推荐几篇

https://blog.csdn.net/a2247889821/article/details/82217442

https://blog.csdn.net/lu92649264/article/details/80693030

https://blog.csdn.net/u013735511/article/details/82555419

https://blog.xuanyueting.com/2018/05/19/nsq%E4%BB%8B%E7%BB%8D%E5%92%8Cgo-nsq%E4%BD%BF%E7%94%A8/

https://blog.csdn.net/wangchaoxiaoban/article/details/76037142

我在简化一下,给大家说说几个win什么的东西。

核心组件:

nsqd.exe 该组件负责接收数据和转发数据。生产者发布数据到这里,消费者来这里取数据。

类似集群部署组件

nsqlookupd.exe 该组件负责管理 nsqd.exe, nsqd.exe向该组件注册,心跳通信,状态获取。nsqlookupd根据心跳确定nsqd是否在线,获取每个nsqd上的主题信息。

辅助工具

nsqadmin.exe  该组件在消息系统中没有作用,只是一个辅助工具,提供一个网页界面方便查看主题信息,该组件从nsqlookupd获取主题数据并且展示。你可以简单理解成这是一个小web,为你提供信息。

在win上,默认启动是这样的。

这就是大概情况。结合c#的客户端NsqCSharp,给大家解释下。

1.生产者

客户端例子:

var producer = new Producer("127.0.0.1:4150");

            producer.Publish("test-topic-name", "Hello!");

说明:nsqd启动,看图,TCP的默认端口是4150,生产者直接将数据推出。

2.消费者

var consumer = new Consumer("test-topic-name", "channel-name");

            consumer.AddHandler(new MessageHandler());

            consumer.ConnectToNsqLookupd("127.0.0.1:4161");

说明:这里消费端使用的是http,消费端这里的地址是nsqlookupd的http端口,通过该地址获取该主题的nsqd地址,内部再去连接nsqd,这个是当前客户端封装的。

上面这种方式,生产者直接连接nsqd,消费者先通过nsqlookupd获取nsqd,然后再连接,是nsq官方推荐的方式。

NSQ消息队列的更多相关文章

  1. 剖析nsq消息队列(一) 简介及去中心化实现原理

    分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了.后期的文章我会把nsq的源码 ...

  2. 剖析nsq消息队列(二) 去中心化代码源码解析

    在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难 ...

  3. 剖析nsq消息队列(四) 消息的负载处理

    剖析nsq消息队列-目录 实际应用中,一部分服务集群可能会同时订阅同一个topic,并且处于同一个channel下.当nsqd有消息需要发送给订阅客户端去处理时,发给哪个客户端是需要考虑的,也就是我要 ...

  4. 剖析nsq消息队列目录

    剖析nsq消息队列(一) 简介及去中心化实现原理 剖析nsq消息队列(二) 去中心化源码解析 剖析nsq消息队列(三) 消息传输的可靠性和持久化[一] 剖析nsq消息队列(三) 消息传输的可靠性和持久 ...

  5. Go:Nsq消息队列

    Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一下Nsq的几个核心组件整个Nsq服务包含三个主要部分 nsqlookupd 先看看官方的原话是怎么说:nsqlookupd是守护进程负责管理拓扑 ...

  6. 消息队列 NSQ 源码学习笔记 (一)

    nsqlookupd 用于Topic, Channel, Node 三类信息的一致性分发 概要 nsqlookup 知识点总结 功能定位 为node 节点和客户端节点提供一致的topic, chann ...

  7. 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)

    Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...

  8. 消息队列Queue大全

    消息队列Queue大全 (http://queues.io/) 作业队列,消息队列和其他队列.几乎所有你能想到的都在这. 关于 那里有很多排队系统.他们每个人都不同,是为解决某些问题而创建的.这个页面 ...

  9. 消息队列&Celery&RabbitMQ&zeromq

    一.消息队列 什么是消息队列? “消息队列”是在消息的传输过程中保存消息的容器. “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象. 消息 ...

随机推荐

  1. 关于GeneXus中的ForeachCommand命令

          首先作为我们开发过程中必不可少的命令For Each 有着无与伦比的重要性 但是我们从Wiki上得知 我们用到的可能只是它一丢丢的能力并没有全部使用出来.        所以 这篇文档将记 ...

  2. 01.Linux-CentOS系统网卡名称变动问题

    方法一root登陆系统1.删除原来的配置信息[root@localhost ~]# rm -f /etc/sysconfig/network-scripts/ifcfg-eth0[root@local ...

  3. 【抓包工具之Fiddler】导出jmeter脚本

    一.下载完成后,解压压缩包,将插件中的2个文件放入到Fiddler安装目录中   插件目录     二.打开fiddler,设置测试时过滤的条件(抓包可以指定域名的请求)   设置过滤条件 三.这里我 ...

  4. python 中 len()和range()

    https://blog.csdn.net/qq_36357820/article/details/77850841

  5. 返回结果的 HTTP 状态 码

    2xx 200:表示从客户端发来的请求在服务器端被正常处理了.   204:该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中 不含实体的主体部分.另外,也不允许返回任何实体的主体.   2 ...

  6. 快速失败(fail—fast)和 安全失败(fail—safe)

    快速失败(fail-fast) 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的结构进行了修改(增加.删除),则会抛出Concurrent Modification Exception. 原理 ...

  7. hadoop中mapreduce的mapper抽象类和reduce抽象类

    mapreduce过程key 和value分别存什么值 https://blog.csdn.net/csdnliuxin123524/article/details/80191199 Mapper抽象 ...

  8. ORACLE 行转列的通用过程

    --测试数据create table rowtocol_test asselect 2009 year,1 month,'部门1' dept,50000 expenditure from dualun ...

  9. oracle for loop

    我们在Oracle存储过程中需要遍历一张表,应该怎样做.我想大多少的人第一个念头就是Cursor. 比如: create or replace procedure StudyCursor( resul ...

  10. ubuntu安装deb包(dpkg)

    安装 sudo dpkg -i DEB_PACKAGE 卸载 sudo dpkg -r PACKAGE_NAME 重新配置已安装的包 Reconfigure an existing package 例 ...