go语言中的gRPC(一)

揭秘gRPC:高性能RPC框架解析 gRPC是一种高性能开源RPC框架,基于HTTP/2协议,支持多种编程语言。它采用Protocol Buffers作为默认数据格式,提供四种通信模式:一元RPC、服务器流式、客户端流式和双向流式。相比REST,gRPC具有更高的性能(二进制编码)、更低的延迟和原生流式支持,但浏览器兼容性较差。在C++中,gRPC可通过同步/异步API实现各类RPC调用,支持TLS加密、元数据传递和负载均衡。性能测试表明,gRPC在序列化速度和网络传输效率上显著优于JSON,特别适合微服务间通信等高性能场景。 阅读详情

初识protobuf

1、protobuf 介绍

Protobuf是Protocol Buffer的简称,它是Google公司于2008年开源的一种高效的平台无关、语言无关、可扩展的数据格式,目前Protobuf作为接口规范的描述语言。是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。

2、protobuf 对应go数据类型

.proto Type Go Type
double float64
float float32
int32 int32
uint32 uint32
uint64 uint64
sint32 int32
sint64 int64
fixed32 uint32
fixed64 uint64
sfixed32 int32
sfixed64 int64
bool bool
string string
bytes []byte
repeated string []string

使用protobuf

1、相关工具安装(windows)

1.1安装 protoc

下载地址:https://github.com/protocolbuffers/protobuf/releases/tag/v3.15.5
在这里插入图片描述
下载完成后,解压,bin目录下有个 protoc.exe 文件,将这个目录加入环境变量
在这里插入图片描述
测试是否安装成功

protoc --version

显示版本号代表安装成功

1.2安装 protoc-gen-go
go get -u github.com/golang/protobuf/protoc-gen-go

运行完了后在你的 GOPATH/bin 目录会下生成 protoc-gen-go.exe 文件
在这里插入图片描述

1.3配置环境变量

要想在全局使用,需要把 GOPATH/bin目录配置到环境变量中

2、Linux安装

1.下载protoc

https://github.com/protocolbuffers/protobuf/releases/download/v21.5/protoc-21.5-linux-x86_64.zip
更多下载地址:https://github.com/protocolbuffers/protobuf/releases

简单说就是下载到服务器,解压,如果下载不了,就采取科学上网
下载解压过程略过

文件移动到对应目录

# 移动protoc文件
cd protoc-21.5-linux-x86_64/bin
cp protoc /usr/local/bin
# 给文件添加可执行权限
cd /usr/local/bin
chmod +x protoc

# 移动google文件夹
cd protoc-21.5-linux-x86_64/include
cp 
protoc-gen-go 介绍与源代码分析 protoc-gen-go github 地址: https://github.com/golang/protobuf/tree/master/protoc-gen-go 它是 protoc 的一个插件,通过它, golang/protobuf 使 proto 定义文件,生成 golang 版本协议代码 protoc-gen-go 具有良好的代码结构,可以简单在 protoc-gen-go 代... 阅读详情

相关推荐

第一章:Go gRPC 微服务简介——跨平台、高性能的RPC框架

本文介绍了gRPC在微服务架构中的应用与实践。gRPC是基于HTTP/2协议的高性能RPC框架,支持多语言互操作和高效通信。通过一个产品信息服务案例,展示了如何使用Go实现gRPC服务端,并用Python客户端进行跨语言调用,验证了gRPC的跨语言优势。文章还探讨了微服务验证机制、契约测试的重要性以及容错能力的初步概念,为构建可靠微服务系统奠定了基础。最后介绍了本系列博客的后续章节内容,包括微服务架构设计、弹性通信等主题。

分享AI、区块链技术及应用,未来已来 416

GNSS接收机性能测试指标详解:TTFF、位置精度、灵敏度等关键参数如何评估

本文详细解析了GNSS接收机性能测试的关键指标,包括首次定位时间(TTFF)、位置精度、灵敏度等,帮助工程师系统评估接收机性能。通过多频段协同定位和载波相位测试等技术,提升定位精度至亚米级。同时,介绍了灵敏度测试的极限挑战和授时精度的专业测试方案,为GNSS接收机的性能优化提供实用指导。

cuda7parallel的博客 963

重磅!Repo Wiki!

RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。

ayusong870的博客 4028

EB TRESOS 29.0.0安装教程用于MCAL配置开发

本文介绍的搭建基于NXP官网提供EB软件,进行基于标准AUTOSAR软件底层驱动配置的开发

qq_53260940的博客 1877

开源多波束声呐数据集:从原始回波到AI识别的关键一步

本文探讨了开源多波束前视声呐数据集(UATD)在AI目标识别中的关键作用。通过分析原始回波数据与处理后数据的差异,揭示了开源数据集如何降低研究成本、提升实验可重复性,并加速技术迭代。文章还详细解析了UATD数据集的结构、实战应用技巧及从原始数据到AI模型的完整流程,为水下目标识别研究提供了宝贵参考。

weixin_28675839的博客 422

避坑指南:你的VASP CI-NEB计算为什么不收敛?常见错误分析与解决思路

本文深入解析VASP CI-NEB计算不收敛的常见问题,提供从结构准备到参数设置的系统解决方案。针对过渡态计算中的能量曲线异常、中间图像偏离等典型问题,详细介绍了诊断方法和实用工具,帮助研究者高效解决CI-NEB收敛难题,提升计算效率。

weixin_29698641的博客 433

Linux | Ubuntu18.04安装RTX 4060显卡驱动完整教程

本节详细介绍了如何在ubuntu18系统安装4060显卡的驱动。

九七的博客 5159

软件设计师---计算机系统

软件设计师---计算机系统

我从不打没有准备的仗! 3万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: Liunx执行.sh脚本出现 No such file or directory 问题
下一篇: 华为云鲲鹏服务器安装PHP-FPM
柳逸尘Lycodx
博客等级 码龄8年 56粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值