micro 使用grpc协议

gRPC

grpc 是谷歌开源的rpc框架,基于http2实现,并支持跨语言。
高性能,跨语言。go-micro和grpc无缝集成。
go-micro里默认使用的通讯协议是MUCP https://github.com/micro/protocol
如果想要在go-micro里使用grpc协议,可以使用官方的grpc插件go-grpc
https://github.com/micro/go-grpc/blob/master/README_cn.md

在go-micro里使用grpc协议

我们接着上一节的例子来做。

1.修改main.go文件

import里增加 github.com/micro/go-grpc 的包依赖
修改micro.NewService为grpc.NewService

2.创建go-micro的客户端

//在项目根目录创建cli目录。并在cli目录下创建main.go,将以下代码拷贝进去
package main

import (
	"fmt"
	"github.com/micro/go-grpc"

	hello "greeter/proto/example"
	"context"
)

func main()  {
	service := grpc.NewService()
	service.Init()

	cl := hello.NewExampleService("go.micro.srv.greeter" , service.Client())

	rsp, err := cl.Call(context.TODO() , &hello.Request{Name:"mr qin"})

	if err != nil{
		fmt.Println(err)
		return
	}

	fmt.Println(rsp.Msg)
}

3.启动服务端
go run main.go
4.启动客户端
go run cli/main.go

测试

如果我的客户端代码里使用的是service := micro.NewService()
返回结果如下
在这里插入图片描述
如果是service := grpc.NewService()
在这里插入图片描述

总结

因为go-micro也是基于Protobuf 来构建服务的数据结构,所以和grpc的集成几乎是无需变更的。
只需要将代码里NewService的对象由默认的micro的地方更换成grpc即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值