发布订阅

前言: 用 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

文档更新时间: 2020-05-30 16:45   作者:kuteng