通知服务
提供发送通知服务
新建服务
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),
)
// Initialise service
service.Init()
// Register Handler
//example.RegisterExampleHandler(service.Server(), new(hand