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 mainimport ("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即可。
micro 使用grpc协议相关推荐
- 深入理解 gRPC 协议--理解protobuf/.proto/http2
RPC 无非是做两件事情:一是数据编码,二是请求映射. 1. 数据编码–protobuf vs json 数据编码顾名思义就是在将请求的内存对像转化成可以传输的字节流发给服务端,并将收到的字节流再转化 ...
- 采用Locust对grpc协议进行压测
1.Locust学习 详情可以参考:Locust官方文档[中文翻译] 2.grpc协议 详情可以参考:gRPC 官方文档中文版V1.0 gRPC 是什么? 在 gRPC 里客户端应用可以像调用本地对象 ...
- grpc协议_gRPC和协议缓冲区简介
grpc协议 gRPC is a burgeoning piece of technology that allows you to build web services where you can ...
- Micro Framework WireProtocol协议介绍
[叶帆工作室]2009-2-15 1.简介 WireProtocol协议是上位机MFDeploy或VS2008程序在诊断.部署.调试.Net Micro Framework设备及相关应用程序时的通信协 ...
- GRPC协议的相关原理
GRPC的Client与Server,均通过Netty Channel作为数据通信,序列化.反序列化则使用Protobuf,每个请求都将被封装成HTTP2的Stream,在整个生命周期中,客户端Cha ...
- Nacos服务注册与发现源码(一)之gRPC协议的实例注册
Nacos核心功能点 服务注册:Nacos Client会通过发送请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址.端口等信息.Nacos Server接收到注册请求 ...
- Soul网关发布里程碑的2.3.0版本,新增支持GRPC,Tars,Sofa协议
距离上一次发布长达半年之久,在这半年的时间里,我与我的社区小伙伴们,做了太多太多的事情.完成了将近200 多次PR,发表了将近300 篇文章的源码解析,新增贡献者 120 多位,晋升了 7位commi ...
- 深入了解 gRPC:协议
gRPC 是一个高性能.通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且 ...
- micro、M3O微服务系列(一)
本系列以go,micro3为主 文章目录 软件开发的预测 什么是微服务 为什么使用微服务 什么是micro 理清微服务的关键字 微服务必然涉及的服务发现 使用go和micro构建全球服务网络 隧道 路 ...
最新文章
- windows域中时间同步的解决方案
- shell逐行读取每一列
- Rancher 2.0 里程碑版本:支持添加自定义节点!
- web前端培训分享:使用Dplayer实现Vue3中的视频及弹幕播放
- Java学习笔记-网络编程
- oracle ebs 基于host(主机文件)并发程序的开发,Oracle EBS 基于Host(主机文件)并发程序的开发...
- ArcGIS实验教程——实验三十九:ArcGIS多元分类(ISO聚类分析、最大似然分类、主成分分析)案例教程
- asp.net中ADO.NET连接SQL数据库代码和连接Access数据库代码
- python生成xml界面,Python如何用dom模块生成XML文
- 大工18春计算机文化基础在线测试1,大工18春《计算机文化基础》在线测试1(满分答案)...
- C语言除法浮点型和整形,浅谈C语言整型与浮点型转换
- 第一行代码 Android (郭霖 著)
- 1024,节日快乐!
- power bi排序_如何在Power BI中按时间顺序对月份进行排序
- Yii1.0框架整合融云解析(一)
- 苹果mac需牢记的SSH命令
- 13.地区设置(Locale Settings)
- ubuntu安装visio2010_ubuntu 一个Linux脚本搞定常用软件的安装
- 服务器显示A40故障码,求助大神,车子出现故障码,5053无法消除
- CEIWEI CommMonitor 串口监控精灵v12.0 串口过滤;串口监控;Serial port monitor tools
热门文章
- Reflect介绍,及常用的方法
- Web全景图的原理及实现
- visio A3设计图如何在A4纸上打印
- CC2530按键控制LED灯开关
- linux设备驱动开发详解孔夫子,Linux设备驱动开发详解
- 元宇宙买房爆赚1000倍?
- pandas里DataFrame的describe函数的解释
- 国家高新技术企业研发费用比例占比
- Ubuntu下Python程序font = ImageFont.truetype(‘arial.ttf‘, 24)报错OSError: cannot open resource
- notepadd++打开文件时保留上次打开文件的解决办法