go-micro项目实战三 消息订阅

本文档介绍了如何在Go-Micro项目中实现消息订阅功能,特别是使用RabbitMQ作为消息代理。通过修改`main.go`,创建事件接口约束,更新事件处理器,启动订阅者服务,并在订单服务中发布消息。实验展示了Go-Micro的插件机制,允许轻松切换消息代理,如从RabbitMQ到其他实现。同时,提到了在go-plugins v1.1.0版本中使用gRPC Broker的bug,期待新版本修复。
摘要由CSDN通过智能技术生成

通知服务

提供发送通知服务

新建服务

micro new shopping/notification
该服务比较简单,只实验了消息发布和订阅的功能,未提供真正通知的逻辑。
实现的功能是:订单提交成功后,通知用户订单已经提交。

消息代理

基于go-micro强大的插件机制。go-plugins内置了诸如grpc,rabbitmq,nats,redis。几乎可以在这些代理之间无缝切换。
本次实验采用rabbitmq代理来实现基本功能。

修改main.go

package main

import (
	"github.com/micro/go-grpc"
	"github.com/micro/go-log"
	"github.com/micro/go-micro"
	"github.com/micro/go-micro/broker"
	"github.com/micro/go-plugins/broker/rabbitmq"

	"shopping/notification/subscriber"
)

func main() {

	b := rabbitmq.NewBroker(
		broker.Addrs("amqp://用户名:密码@主机host:端口port"),
	)

	b.Init()
	b.Connect()

	// New Service
	service := grpc.NewService(
		micro.Name("go.micro.srv.notification"),
		micro.Version("latest"),
		micro.Broker(b),
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值