Go实战全家桶之五:gonats完成nats消息应用层协议栈,同步消息Request/Response&异步消息Publish;10个channel队列,10个消费协程
    		       		warning:
    		            这篇文章距离上次修改已过441天,其中的内容可能已经有所变动。
    		        
        		                
                
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"的主题的消息,并发送响应。最后,它发送一个请求并等待响应,并将接收到的响应打印出来。
评论已关闭