发布订阅

未匹配的标注
本文档最新版为 3.x,旧版本可能放弃维护,推荐阅读最新版!

发布订阅#

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


本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
taadis
讨论数量: 0
发起讨论 只看当前版本


暂无话题~