首页 > 其他分享 >NSQ理解

NSQ理解

时间:2024-01-30 09:22:21浏览次数:26  
标签:http producer tcp 理解 address NSQ port

最近实习需用到了NSQ消息队列,这里贴一点简单的介绍和学习资料,方便日后查阅。

目录

    1. 简介

    NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,由bitly公司开源出来的一款简单易用的消息中间件。
    NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。
    NSQ具有分布式、去中心化的拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。

    1. 学习资料
      这里贴一个大佬的讲解,非常浅显易懂:MQ(1)—— 从队列到消息中间件

    需要注意的是,nsqlookup中返回如下格式的数据:

    {
      "channels": [
        "xxx"
      ],
      "producers": [
        {
          "remote_address": "127.0.0.1:52796",
          "hostname": "hongzeyangdeMacBook-Pro",
          "broadcast_address": "127.0.0.1",
          "tcp_port": 4150,
          "http_port": 4151,
          "version": "1.0.0-compat"
        }
      ]
    }
    

    但其实producers和consumers如何建立连接我还是不明白。我有如下问题,需要今后解决:

    • 这里的tcp_port和http_port是producers的吗?如果是的话我理解producer是发送信息给nsqd进程,consumer应该监听nsqd进程,这里给producer的tcp_port和http_port有什么用?
    • remote_address和broadcast_address有什么区别?
      总的来说就是我不清楚message是如何从producer传递到consumer的。或许需要看一下源码:JavaNSQClient

    关于NSQ还有太多的未知,需要今后继续了解。

    标签:http,producer,tcp,理解,address,NSQ,port
    From: https://www.cnblogs.com/xkge/p/17995764

    相关文章

    • 卷积神经网络理解(二)
      1、卷积神经网络的特点卷积神经网络相对于普通神经网络在于以下四个特点:局部感知域:CNN的神经元只与输入数据的一小部分区域相连接,这使得CNN对数据的局部结构具有强大的敏感性,可以自动学习到图像的特征。参数共享:在CNN中,同一个卷积核(filter)在整个输入图像上滑动,共享权重和偏置......
    • 深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
      C#枚举枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。要创建枚举,请使用enum关键字(而不是class或interface),并用逗号分隔枚举项:enumLevel{Low,Medium,High}您可以使用点语法访问枚举项:LevelmyVar=Level.Medium;Console.WriteLine(myVar);Enu......
    • 深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
      C#枚举枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。要创建枚举,请使用enum关键字(而不是class或interface),并用逗号分隔枚举项:enumLevel{Low,Medium,High}您可以使用点语法访问枚举项:LevelmyVar=Level.Medium;Console.WriteLine(myVar);En......
    • 深入理解 Flink(六)Flink Job 提交和 Flink Graph 详解
      FlinkProgram编程套路回顾1、获取执行环境对象StreamExecutionEnvironmentenv=StreamExecutionEnvironment.getExecutionEnvironment();2、通过执行环境对象,注册数据源Source,得到数据抽象DataStreamds=env.socketTextStream(...)3、调用数据抽象的各种Transformation......
    • 理解Set集合数据结构
      一、Set的基本概念Set是一种包含不重复元素的集合。与List(列表)不同,Set中的元素是无序的,不能通过索引来访问。Set中的每个元素都是唯一的,重复的元素将被自动剔除。二、Set的常见操作1.添加元素:使用add()方法向Set中添加新元素。如果添加的元素已经存在于Set中,则不会有任何改变......
    • Kotlin扩展函数原理解析
      一、扩展函数扩展函数可以方便地给现有类增加属性和方法而不改动类地代码。二、原理funString.addTo(s:String):String{returnthis+s}反编译:@Metadata(mv={1,6,0},k=2,d1={"\u0000\n\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u......
    • 对于计算机体系结构的理解
      计算机体系结构是指根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论的总称。它包括计算机的软、硬件的系统结构,有两方面的含义:一是从程序设计者的角度所见的系统结构,研究计算机体系的概念性结构和功能特性,关系到软件设计的特性;二是从硬件设计者的角度所......
    • 一个例子形象地理解同步与异步
      请看一个示例:同步方式请求接口请求一次接口耗时大约100多毫秒代码一个for循环,循环500次,调用方法Request,Request方法中一个while(true)无限循环,同步方式请求url获取数据。代码点评:要是写一个while(true)没问题,这是想运行500个while(true),这代码是错误的,行不通。应该使用Thread或者T......
    • python语言理解
      类python是一门面向对象的语言,强调的是对象,当我们创建一个类时,必然要给这个类赋予对应的属性去描述它,例如一个动物的类,那么这个类应该有动物种类,颜色,年龄,体重,习性等属性,代码如下:classAnimal:def__init__(self,species,color,age,weight,habitat):self.spec......
    • Stacklberg博弈理解
      古诺模型博弈论——连续产量古诺模型-知乎(zhihu.com)(1)两个厂商并不是同时决策,而是一方先决策,另一方根据对方的决策,再作出决策,即博弈有两个阶段(动态博弈);(2)后做决策的博弈方,知道先做决策的博弈方的决策;(3)两个厂商中,一个寡头厂商是处于支配地位的领导者,另一个是寡头厂商的......