发布时间:2024-11-23 17:34:56
下面是一个示例配置文件的内容:
``` broadcast-address=127.0.0.1 lookupd-tcp-address=127.0.0.1:4160 data-path=/path/to/data max-msg-size=1024768 ```
配置文件中的`broadcast-address`是NSQ在本地机器上绑定的IP地址。`lookupd-tcp-address`是一个NSQ查找服务的地址,我们可以使用该服务来自动发现可用的消息队列通道。`data-path`是NSQ存储数据的路径,`max-msg-size`是消息的最大大小。下面是一个简单的生产者例子:
```go producer, err := nsq.NewProducer("127.0.0.1:4150", nsq.NewConfig()) if err != nil { log.Fatal(err) } err = producer.Publish("my_topic", []byte("Hello NSQ!")) if err != nil { log.Fatal(err) } producer.Stop() ```
在上面的例子中,我们创建了一个NSQ生产者并指定了NSQ的地址。然后,我们使用`Publish`方法将一条消息发送到名为"my_topic"的主题中。下面是一个简单的消费者例子:
```go consumer, err := nsq.NewConsumer("my_topic", "my_channel", nsq.NewConfig()) if err != nil { log.Fatal(err) } consumer.AddHandler(nsq.HandlerFunc(func(message *nsq.Message) error { log.Printf("Received message: %s", message.Body) return nil })) err = consumer.ConnectToNSQLookupd("127.0.0.1:4161") if err != nil { log.Fatal(err) } // 等待退出信号 <-consumer.StopChan ```
在上面的例子中,我们创建了一个NSQ消费者并指定了要消费的主题和通道。然后,我们使用`AddHandler`方法添加了一个处理函数,该函数会在接收到消息时被调用。最后,我们使用`ConnectToNSQLookupd`方法连接到查找服务,并等待退出信号。