zoukankan      html  css  js  c++  java
  • NSQ快速入门实践

    NSQ中文文档:https://wiki.jikexueyuan.com/project/nsq-guide/

    一、简介
    NSQ是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。
    NSQ具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠性传递的特征。
    NSQ非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。
    NSQ由3个组件构成:nsqlookupd、nsqd、和nsqadmin。

    二、快速开始
    1. 安装
    无需安装,下载解压即可使用:https://wiki.jikexueyuan.com/project/nsq-guide/installing.html
    nsqlookupd、nsqadmin和nsqd都在解压目录的bin子目录,进入该子目录。
    2. 启动nsqlookupd

    nsqlookupd是守护进程,负责管理拓扑信息,提供目录服务。nsqd节点通过nsqlookupd广播话题和通道信息,客户端通过查询nsqlookupd来发现指定话题的生产者nsqd节点,由此nsqlookupd将消费者与生产者解耦开。
    nsqlookupd当前的实现是简单地返回所有地址。
    开放两个端口,TCP接口使用4160端口,nsqd用它来广播,HTTP接口使用4161端口,客户端使用它来执行发现和管理操作。

    3. 启动nsqd

    nsqd是一个守护进程,负责接收、排队、投递消息给客户端。
    它可以独立运行,不过通常它是由nsqlookupd实例所在集群配置的,并使用nsqlookupd的4160端口进行话题与通道的广播。
    每个nsqd有一个与nsqlookupd的长期TCP连接,定期推动其状态(sending heartbeat)。这个数据被nsqlookupd用于给消费者通知nsqd地址。对于消费者来说,一个暴露的HTTP /lookup接口用于轮询。
    nsqd会发送心跳包给客户端,连续两个没有应答则超时关闭连接。
    有两个接口,TCP接口使用4150端口,给客户端使用,HTTP接口使用4151端口,是HTTP API。同时,它也能在第三个端口监听HTTPS。

    4. 启动nsqadmin

    nsqadmin是一套WEB UI,用来汇集集群的实时统计,并执行不同的管理任务。
    它使用nsqlookupd的4161端口来发现nsqd的所有话题与通道,可通过4171端口访问其可视化界面。
    可视化界面:

    至此,nsqd的三个组件,nsqlookupd、nsqd和nsqadmin都已启动完毕,可以开始使用了。

    5. 使用curl命令向nsqd推送消息

    6. 使用nsq_to_file客户端将指定话题的消息写入文件中

    nsq_to_file客户端首次执行时会在指定话题开启一个名为“nsq_to_file”的通道,用于接收当前话题的所有消息,然后从该通道中获取消息数据,写入文件中。
    7. 使用nsq_to_nsq客户端将指定通道的消息发送给另一个话题

    注意:这里nsq_to_nsq客户端指定从“nsq_to_file”通道获取消息,nsq_to_file客户端也会从该通道获取消息,最终“nsq_to_file”通道的消息会被这两个客户端随机消费,每个客户端都只能得到这个通道上的部分消息。

  • 相关阅读:
    Python3-元组
    Python3-列表
    Python3-字符串
    Python3-for循环机制
    Python3-初识
    优先队列——priority queue
    单调队列 —— 滑动窗口
    SDNU_ACM_ICPC_2021_Winter_Practice_7th [个人赛]
    博弈论入门(论和威佐夫、巴什、尼姆打牌被吊打是什么感受(╥﹏╥)
    字符串最大最小表示法
  • 原文地址:https://www.cnblogs.com/wujuntian/p/12830817.html
Copyright © 2011-2022 走看看