发布订阅
发布订阅#
前言:用 Go Micro 的发布订阅构建事件驱动的微服务
概述#
微服务是一种事件驱动的体系结构模式,因此 Go Micro 使用消息代理接口构建异步消息的概念。它可为您无缝地运行 protobuf 类型。自动编码和解码消息,因为它们从代理发送和接收.
默认情况下,go-micro 包括点对点 http 代理,但可以通过 go-plugins 置换实现.
发布消息#
使用 topic
名称和服务客户端创建一个新的发布者
p := micro.NewEvent("events", service.Client())
发布 proto 消息
p.Publish(context.TODO(), &proto.Event{Name: "event"})
订阅#
创建消息处理程序。它的签名应该是 func(context.Context, v interface{}) error
func ProcessEvent(ctx context.Context, event *proto.Event) error {
fmt.Printf("Got event %+v\n", event)
return nil
}
使用 topic
注册消息处理程序
micro.RegisterSubscriber("events", ProcessEvent)
有关完整示例,可参阅 examples/pubsub
推荐文章: