grpc专题

linux下安装grpc的步骤

安装gogrpc首先需要考虑自己的linux主机能否上外网,如果能上外网,则只需要执行一条命令即可,不能的话,则需要执行多条命令 1.测试自己的主机能否上外网 ping google.com,大部分Linux服务器由于安全性等方面的原因,会限制无法上外网 2.可以上外网则执行 go get google.golang.org/grpc,这条命令本质上是先执行 git clone下载文件,然

Gone框架介绍29 - 在Gone中使用gRPC通信

gone是可以高效开发Web服务的Golang依赖注入框架 github地址:https://github.com/gone-io/gone 文档地址:https://goner.fun/zh/ 文章目录 使用gRPC通信编写proto文件,生成golang代码编写服务端代码注册客户端编写配置文件测试总结 使用gRPC通信 首先创建一个grpc目录,在这个目录中初始化一

掌握rpc、grpc并探究内在本质

文章目录 rpc是什么?又如何实现服务通信?理解rpcRPC的通信过程通信协议的选择小结RPC VS Restful net_rpc实践案例net/rpc包介绍创建服务端创建client 看看net_rpc的通信调度实现的内部原理明确目标基于自己实现的角度分析我会怎么做代码分析 grpc介绍与下载安装前言与背景grpc针对上面问题的解决方案简述grpc下载 grpc框架实践案例分析流程项目结

Golang——gRPC gateway网关

前言         etcd3 API全面升级为gRPC后,同时要提供REST API服务,维护两个版本的服务显然不大合理,所以gRPC-gateway诞生了。通过protobuf的自定义option实现了一个网关。服务端同时开启gRPC和HTTP服务,HTTP服务接收客户端请求后转换为grpc请求数据,获取响应后转为json数据放回给客户端。  安装gRPC-gateway:go ge

grpc-go源码剖析二十六之头帧是如何发送出去的呢?

本小节我们重点分析一下,头帧处理器的原理,即如何将头帧发送出去? 1、客户端一侧,头帧的整体处理流程介绍 可以从下图中,了解客户端一侧,帧发送器处理头帧的整体处理流程: 主要流程说明: 创建好头帧后,调用帧存储executeAndPut方法,将头帧存储到帧缓存controlBuf里;帧发送器工作介绍: a)帧加载器从帧缓存里获取到头帧b)帧分发器根据帧的类型,将头帧分发给头帧处理器处理c

grpc-go源码剖析二十五之帧发送器执行逻辑介绍

本小节主要是针对帧发送器的主要流程进行分享; 1、帧发送器主要可以处理哪几种帧? 可以简单的归为三类: 头帧,数据帧,设置类型的帧; 像头帧,数据帧跟用户的业务有关系 设置类型的帧,是为传输阶段服务的,比方说更新窗口大小; 头帧headerFrame数据帧dataFrame设置类型的帧 窗口更新帧 i.incomingWindowUpdateii.outgoingWindowU

grpc-go源码剖析二十四之在同一个进程中如何使用通知的方式消费数据帧?

已发表的技术专栏 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录) 假设现在有生产数据一方,消费数据一方,

grpc-go源码剖析二十三之如何将帧数据在内存里进行存储和获取?

在以前的章节中,我们经常提到,帧是存储在帧缓存器controlBuf里的,那么controlBuf的结构如何?controlBuf是如何来具体的存储各种类型的帧呢?   本篇文章,就是解决这些问题的。 1、帧缓存器controlBuffer的结构 进入grpc-go/internal/transport/controlbuf.go文件,看一下controlBuffer结构体: 1.ty

gRPC-go源码剖析二十二之帧发送器的整体处理流程介绍

在grpc框架中,grpc客户端跟grpc服务器端的 帧发送器的原理是一样。 一个链接需要一个帧发送器,一个缓存帧的内存。 一个帧发生器可以处理多个流,只要是该链路上的流,都必须通过这个链路的帧发送器进行发送。 1、帧发送器的整体流程介绍 如下图所示: 主要流程说明: 各种类型的帧通过帧存储器接口(put, executeAndPut)将帧存储都帧缓存器controlBuf里,一个连接

grpc-go源码剖析二十一之grpc服务器端帧接收器的原理介绍

前面章节分析了grpc客户端的帧接收器原理,本节我们将分享grpc服务器端的帧接收器原理; 1、帧接收器的入口? 随便找一个grpc服务器端的启动文件,如main.go: 1.func main() {2. lis, err := net.Listen("tcp", port

grpc-go源码剖析二十之grpc客户端帧接收器是如何处理不同的帧的?

已发表的技术专栏 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录)   上一小节,我们针对grpc客户端的

grpc-go源码剖析十九之grpc客户端帧接收器的原理介绍

在客户端跟服务器端交互过程中,还有一个问题没有介绍;就是帧是如何发送给对方的,对方又是如何接收帧的;因此,本章节会从这个角度介绍。   在接下来的文章中,先介绍grpc客户端帧接收器的原理; 1、grpc客户端和grpc服务器端建立起的链接,帧接收器,流之间的关系?   一个底层连接,对应着一个帧接收器,而一个帧接收器可以接收多个流。   至于流的概念,将来在其他章节再介绍。 2、g

grpc-go源码剖析十八之解析器resolver 、平衡器balancer、Picker之间的关系

本篇文章主要是想再分享一下,解析器resolver 、平衡器balancer、Picker之间的关系,如果不是很熟悉的话,可能还是有点模糊; 1、整体流程说明 解析器resolver 、平衡器balancer、Picker之间的关系,如下如所示: 从图中,可以看出来: grpc客户端跟grpc服务器端处理的整个生命周期,经历了两个阶段: rpc链接建立阶段rpc请求阶段,或

grpc-go源码剖析十七之grpc+consul+自定义平衡器WeightBalancer实现方案介绍

在前文我们已经介绍了如何实现一个平衡器,那么本节我们将尝试自定义一个平衡器; 该平衡器的核心目的是: 根据子链接的权重来选择已经创建好的rpc链接,用来传输各种类型的帧,即rpc请求 。 1、整体流程介绍 grpc+weight-balancer的整体处理流程,如下图所示: 环境说明: 在Mac上: 3个grpc服务器端1个grpc客户端在虚拟机里启动1个docker方式运行

03 grpc-go环境说明、版本、网盘、QQ群、为什么学习grpc-go

已发表的技术专栏 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录     1、为什么要分享学习g

01 grpc-go源码剖析与实战之 图文专栏介绍 【关注+收藏+20万字+99篇文章】

已发表的技术专栏 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  grpc、oauth2、openssl、双向认证、单向认证等专栏文章目录 5  零入门kubernetes网络

Golang——gRPC认证

一. OpenSSL         1.1 介绍         OpenSSL是一个开放源代码的软件库包,用于支持网络通讯过程中的加密。这个库提供的功能包含了SSL和TLS协议的实现,并可用于生成密钥、证书、进行密码运算等。         其组成主要包括一下三个组件: openssl:多用途的命令行工具 libcrypto:加密算法库 libssl:加密模块应用库,实现了ssl

Clion上搭建基于grpc的service与client实例

这里假设protobuf,grpc,zlib等前置库都已经安装好了。   1.新建protobuf文件 syntax = "proto3";message SearchRequest{string Request = 1;}message SearchResponse{string Response = 2;}service SearchService {rpc Search

gRPC小错记录:TypeError: new() got an unexpected keyword argument 'serialized_options

今天调试gRPC报了这个错误:TypeError: new() got an unexpected keyword argument 'serialized_options Google了一下,说是protobuf版本的问题,客户端和服务端的protobuf版本不一样,把客户端的protobuf卸载重新安装跟服务端一样版本后就好了。 protobuf 的版本是 3.6.1  https://

给gRPC增加负载均衡功能

在现代的分布式系统中,负载均衡是确保服务高可用性和性能的关键技术之一。而gRPC作为一种高性能的RPC框架,自然也支持负载均衡功能。本文将探讨如何为gRPC服务增加负载均衡功能,从而提高系统的性能和可扩展性。 什么是负载均衡? 负载均衡是一种分布式系统设计的技术,旨在将请求均匀地分发到多个服务实例上,以提高系统的整体性能、可用性和容错能力。通过负载均衡,系统可以更好地处理大量请求,同时有效地利

gRPC(狂神说)

gRPC(狂神说) 视频地址:【狂神说】gRPC最新超详细版教程通俗易懂 | Go语言全栈教程_哔哩哔哩_bilibili 1、gRPC介绍 单体架构 一旦某个服务宕机,会引起整个应用不可用,隔离性差只能整体应用进行伸缩,浪费资源,可伸缩性差代码耦合在一起,可维护性差 微服务架构: 解决了单体架构的弊端,但同时引入了新的问题 代码冗余服务和服务之间存在调用关系 服务拆分后,服务和服

gRPC实战 | 实现Python 和 Go 之间的 gRPC 交互

前言 📢博客主页:程序源⠀-CSDN博客 📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正! 一、gRPC 简介 gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 gRPC具有以下重要特征: 强大的IDL特性 RPC使用

grpc接口调用

grpc接口调用 准备依赖包clientserver 参考博客: Grpc项目集成到java方式调用实践 gRpc入门和springboot整合 java 中使用grpc java调用grpc服务 准备 因为需要生成代码,所以必备插件 安装后重启 依赖包 <?xml version="1.0" encoding="UTF-8"?><project

利用go+grpc+gorm+proto、通过设计好的数据表快速生成curd增删改查代码

目录 简介 目录结构 依赖的其他go组件 参考资料 简介 github:https://github.com/arrayhua/go_grpc_gorm_micro ps:不要认为依赖项很多,觉得是需要全部掌握才可以上手哦。其实只需要懂MVC和GO语言基础即可完成业务需求。 微服务、云原生的时代,本项目以go语言为基础,采用grpc面向移动和 HTTP/2 设计(HTTP

springboot下载grpc编译文件,报错缺少protoc-gen-grpc-java:1.34.1:exe不存在

报错如图所示 下载 下载proto地址; https://github.com/protocolbuffers/protobuf/releases/tag/v3.12.0 v3.12.0 替换成自己的版本。 如图所示 window安装 安装protoc和grpc插件 替换成自己的版本 https://repo1.maven.org/maven2/io/grpc/proto

gRPC 状态码解读:一文看懂

gRPC 是什么? gRPC(gRPC Remote Procedure Call)是一个高性能的开源框架,它通过远程过程调用(RPC)机制促进应用程序之间的通信。 gRPC 框架使客户端应用程序能够调用不同机器上的服务器应用程序的方法,就好像它是本地对象一样。因此,该框架通过抽象网络通信的复杂性,简化了分布式系统的开发。 gRPC 的关键特性 语言中立性 RPC 是平台无关的,并支持多