Go实战全家桶之五:gonats完成nats消息应用层协议栈,同步消息Request/Response&异步消息Publish;10个channel队列,10个消费协程
package main
import (
"fmt"
"github.com/nats-io/nats.go"
"log"
"time"
)
func main() {
// 连接到NATS服务器
nc, err := nats.Connect(nats.DefaultURL)
if err != nil {
log.Fatal(err)
}
defer nc.Close()
// 请求-响应模式: 发送一个请求并等待响应
sub, err := nc.SubscribeSync("request", func(m *nats.Msg) {
nc.Publish(m.Reply, []byte("NATS Request Response"))
})
if err != nil {
log.Fatal(err)
}
defer sub.Unsubscribe()
// 发送请求并等待响应
msg, err := nc.Request("request", []byte("Hey NATS"), 1*time.Second)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Received Response: %s\n", string(msg.Data))
}
这段代码演示了如何使用Go语言和NATS消息中间件库来创建一个简单的请求-响应模式的消息系统。首先,它连接到NATS服务器,然后创建一个同步订阅者来处理名为"request"的主题的消息,并发送响应。最后,它发送一个请求并等待响应,并将接收到的响应打印出来。
评论已关闭