mirror of
https://github.com/go-micro/go-micro.git
synced 2025-11-23 21:44:41 +02:00
46 lines
765 B
Markdown
46 lines
765 B
Markdown
|
|
---
|
||
|
|
layout: default
|
||
|
|
---
|
||
|
|
|
||
|
|
# Pub/Sub with NATS Broker
|
||
|
|
|
||
|
|
Use the NATS broker for pub/sub.
|
||
|
|
|
||
|
|
## In code
|
||
|
|
|
||
|
|
```go
|
||
|
|
package main
|
||
|
|
|
||
|
|
import (
|
||
|
|
"log"
|
||
|
|
"go-micro.dev/v5"
|
||
|
|
"go-micro.dev/v5/broker"
|
||
|
|
bnats "go-micro.dev/v5/broker/nats"
|
||
|
|
)
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
b := bnats.NewNatsBroker()
|
||
|
|
svc := micro.NewService(micro.Broker(b))
|
||
|
|
svc.Init()
|
||
|
|
|
||
|
|
// subscribe
|
||
|
|
_, _ = broker.Subscribe("events", func(e broker.Event) error {
|
||
|
|
log.Printf("received: %s", string(e.Message().Body))
|
||
|
|
return nil
|
||
|
|
})
|
||
|
|
|
||
|
|
// publish
|
||
|
|
_ = broker.Publish("events", &broker.Message{Body: []byte("hello")})
|
||
|
|
|
||
|
|
svc.Run()
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Via environment
|
||
|
|
|
||
|
|
Run your service with env vars set:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
MICRO_BROKER=nats MICRO_BROKER_ADDRESS=nats://127.0.0.1:4222 go run main.go
|
||
|
|
```
|