2020-12-26 15:32:45 +00:00
|
|
|
# GRPC Broker
|
|
|
|
|
|
|
|
The grpc broker is a point to point grpc broker.
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
This broker is like the built in go-micro http2 broker except it uses grpc and protobuf as the protocol and messaging format.
|
|
|
|
It uses the go-micro registry to subscribe to a topic, creating a service for that topic. Publishers lookup the registry
|
|
|
|
for subscribers and publish to them, hence point to point.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```go
|
|
|
|
import (
|
2021-01-20 21:01:10 +00:00
|
|
|
"github.com/asim/go-micro/plugins/broker/grpc"
|
2020-12-26 15:32:45 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// create and connect (starts a grpc server)
|
|
|
|
b := grpc.NewBroker()
|
|
|
|
b.Init()
|
|
|
|
b.Connect()
|
|
|
|
|
|
|
|
// subscribe
|
|
|
|
sub, _ := b.Subscribe("events")
|
|
|
|
defer sub.Unsubscribe()
|
|
|
|
|
|
|
|
// publish
|
|
|
|
b.Publish("events", &broker.Message{
|
|
|
|
Headers: map[string]string{"type": "event"},
|
|
|
|
Body: []byte(`an event`),
|
|
|
|
})
|
|
|
|
```
|