go-micro.dev/v5@v5.12.0/internal/website/docs/examples/pubsub-nats.md (about) 1 --- 2 layout: default 3 --- 4 5 # Pub/Sub with NATS Broker 6 7 Use the NATS broker for pub/sub. 8 9 ## In code 10 11 ```go 12 package main 13 14 import ( 15 "log" 16 "go-micro.dev/v5" 17 "go-micro.dev/v5/broker" 18 bnats "go-micro.dev/v5/broker/nats" 19 ) 20 21 func main() { 22 b := bnats.NewNatsBroker() 23 svc := micro.NewService(micro.Broker(b)) 24 svc.Init() 25 26 // subscribe 27 _, _ = broker.Subscribe("events", func(e broker.Event) error { 28 log.Printf("received: %s", string(e.Message().Body)) 29 return nil 30 }) 31 32 // publish 33 _ = broker.Publish("events", &broker.Message{Body: []byte("hello")}) 34 35 svc.Run() 36 } 37 ``` 38 39 ## Via environment 40 41 Run your service with env vars set: 42 43 ```bash 44 MICRO_BROKER=nats MICRO_BROKER_ADDRESS=nats://127.0.0.1:4222 go run main.go 45 ```