Broker
The broker provides pub/sub messaging for Go Micro services.
Features
- Publish messages to topics
- Subscribe to topics
- Multiple broker implementations
Implementations
Supported brokers include:
- Memory (default)
- NATS
- RabbitMQ
Configure the broker when creating your service as needed.
Example Usage
Here’s how to use the broker in your Go Micro service:
package main
import (
"go-micro.dev/v5"
"go-micro.dev/v5/broker"
"log"
)
func main() {
service := micro.NewService()
service.Init()
// Publish a message
if err := broker.Publish("topic", &broker.Message{Body: []byte("hello world")}); err != nil {
log.Fatal(err)
}
// Subscribe to a topic
_, err := broker.Subscribe("topic", func(p broker.Event) error {
log.Printf("Received message: %s", string(p.Message().Body))
return nil
})
if err != nil {
log.Fatal(err)
}
// Run the service
if err := service.Run(); err != nil {
log.Fatal(err)
}
}