微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NATS Go 云消息系统

程序名称:NATS Go

授权协议: MIT

操作系统: 跨平台

开发语言: Google Go

NATS Go 介绍

NATS Go 是 NATS 的 Go 客户端。

安装:

# Go client
go get github.com/nats-io/nats
# Servers
# gnatsd
go get github.com/nats-io/gnatsd
# nats-server (Ruby)
gem install nats

基础编码使用

nc, _ := nats.Connect(nats.DefaultURL)
c, _ := nats.NewEncodedConn(nc, nats.JSON_ENCODER)
defer c.Close()
// Simple Publisher
c.Publish("foo", "Hello World")
// Simple Async Subscriber
c.Subscribe("foo", func(s string) {
    fmt.Printf("Received a message: %s\n", s)
})
// EncodedConn can Publish any raw Go type using the registered Encoder
type person struct {
     Name     string
     Address  string
     Age      int
}
// Go type Subscriber
c.Subscribe("hello", func(p *person) {
    fmt.Printf("Received a person: %+v\n", p)
})
me := &person{Name: "derek", Age: 22, Address: "585 Howard Street, San Francisco, CA"}
// Go type Publisher
c.Publish("hello", me)
// Unsubscribing
sub, err := c.Subscribe("foo", nil)
...
sub.Unsubscribe()
// Requests
var response string
err := nc.Request("help", "help me", &response, 10*time.Millisecond)
// Replying
c.Subscribe("help", func(subj, reply string, msg string) {
    c.Publish(reply, "I can help!")
})
// Close connection
c.Close();

NATS Go 官网

https://github.com/nats-io/nats

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐