25. NSQ 简介及教程

本文介绍实时分布式消息平台NSQ,包括其理念、使用原因及详细教程。通过安装示例、消费者与生产者测试案例,深入理解NSQ的功能与操作。
摘要由CSDN通过智能技术生成

NSQ 简介及教程

What is nsq

NSQ is a realtime distributed messaging platform.

IntroduceLinks

Why use nsq

Features-guarantess

How to use nsq

Example

Install

docker-compose.yaml

version: '3'
services:
  nsqlookupd:
    image: nsqio/nsq
    command: /nsqlookupd
    ports:
      - "4160:4160"
      - "4161:4161"
  nsqd:
    image: nsqio/nsq
    command: /nsqd --lookupd-tcp-address=nsqlookupd:4160 --broadcast-address=10.1.4.130
    depends_on:
      - nsqlookupd
    ports:
      - "4150:4150"
      - "4151:4151"
  nsqadmin:
    image: nsqio/nsq
    command: /nsqadmin --lookupd-http-address=nsqlookupd:4161
    depends_on:
      - nsqlookupd  
    ports:
      - "4171:4171"

TestCase

Consumer

consumer_test.go

package comsumer

import (
	"github.com/nsqio/go-nsq"
	"log"
	"testing"
	"time"
)

var (
	nsqLookupdAddr = "10.1.4.130:4161"
)

func TestConsumer1(t *testing.T) {
   
	config := nsq.NewConfig()
	topic := "t1"
	channel := "t1-c1"
	c, err := nsq.NewConsumer(topic, channel, config)

	if err != nil {
   
		log.Fatalf("init consumer fail, err: %s", err.Error())
	}

	c.AddHandler(&msgHandler1{
   })

	// Use nsqlookupd to discover nsqd instances.
	// See also ConnectToNSQD, ConnectToNSQDs, ConnectToNSQLookupds.
	err = c.ConnectToNSQLookupd(nsqLookupdAddr)
	if err != nil {
   
		log.Fatalf("ConnectToNSQLookupd fail, err: %s", err.Error())
	}

	time.Sleep(time.Duration(100) * time.Minute)
}

func TestConsumer2(t *testing.T) {
   
	config := nsq.NewConfig
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值