An open API service indexing awesome lists of open source software.

https://github.com/goapt/nsqclient

nsq client for golang
https://github.com/goapt/nsqclient

Last synced: 8 months ago
JSON representation

nsq client for golang

Awesome Lists containing this project

README

          

# nsqclient
nsq client for golang

Build Status
codecov
Go Report Card
<br />
GoDoc

## Connection
```go
nsqclient.Connect(map[string]Config{
"default": Config{
Host: "10.64.146.231",
Port: "4150",
InitSize: 10,
MaxSize: 10,
},
"other": Config{
Host: "10.64.146.22",
Port: "4150",
InitSize: 10,
MaxSize: 10,
},
})
```

## Publish
写入nsq为了方便进行单元测试,可以注入nsqclient.Producer接口,然后在单元测试使用mock的实现
```go
// default client
nsq := nsqclient.NewProducer("default")
nsq.Publish("topic","body")

//mock
nsq := nsqclient.NewMockProducer("default")
nsq.Publish("topic","body")
```

## Consumer
```go
// default connect
consumer := &nsqclient.NsqHandler{
Topic: "log",
Channel: "default",
Size: 10,
}

consumer.SetHandle(func(lg logger.ILogger, message *nsq.Message) error {
// something
return nil
})

nsqclient.Register(consumer, "access_log")

nsqclient.Run("access_log", ctx)

// other connect
consumer := &nsqclient.NsqHandler{
Connect: "other",
Topic: "log",
Channel: "default",
Size: 10,
}
```