RPC技术研究
微服务的经脉
DreamCatcher
热爱编程,不仅仅是为了工作,而是爱好。
热爱生活,不仅仅是为了生存,而是责任。
热爱运动,不仅仅是为了健康,而是习惯。
沉迷太极拳,每天早上5点50起床,练四十分钟拳,四年内风雨无阻。
岁月流程,不再年轻,在这浮躁的社会和超强的生活压力下,希望在编程的道路上,能够坚持下去。
展开
-
protobuf官方文档学习
官方地址:https://developers.google.com/protocol-buffers/docs/proto3定义一个消息类型先来看一个非常简单的例子。假设你想定义一个“搜索请求”的消息格式,每一个请求含有一个查询字符串、你感兴趣的查询结果所在的页数,以及每一页多少条查询结果。可以采用如下的方式来定义消息类型的.proto文件了syntax = "proto3";message SearchRequest { string query = 1; int32 page.原创 2021-08-21 22:53:58 · 1744 阅读 · 0 评论 -
gRPC 拦截器简要说明及示例
InterceptorgRPC provides simple APIs to implement and install interceptors on a per ClientConn/Server basis. Interceptor intercepts the execution of each RPC call. Users can use interceptors to do logging, authentication/authorization, metrics collection原创 2021-06-19 23:22:07 · 549 阅读 · 0 评论 -
gRPC 的四种数据流以及metadata示例
1、四种数据流简单模式(Simple RPC):即客户端发起一次请求,服务端响应一个数据。 服务端数据流模式(Server-side streaming RPC):客户端发起一次请求,服务端返回一段连续的数据流。典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返回给客户端。 客户端数据流模式(Client-side streaming RPC):客户端源源不断的向服务端发送数据流,而在发送结束后,由服务端返回一个响应。典型的例子是物联网终端向服务器报送数据。 双向数原创 2021-06-19 14:46:50 · 1116 阅读 · 0 评论 -
grpc auth interceptor+ Identifier Type设计模式+JWT验证
1、自定义 grpc interceptorconst ( authorizationHeader = "authorization" bearerPrefix = "Bearer ")//Interceptor creates a grpc auth interceptor.func Interceptor(publicKeyFile string) (grpc.UnaryServerInterceptor, error) { f, err := os.Open(publ原创 2021-05-27 23:38:48 · 291 阅读 · 0 评论 -
RPC和REST的区别
一句话,两者并不是一个层面意义上的东西。1、定义REST 是Representational State Transfer的简称,是一种软件架构风格,中文描述为表述性状态转移(是指某个瞬时状态的资源数据的快照,包括资源数据的内容、表述格式(XML、JSON)等信息)。这种风格的典型应用就是HTTP。RPC 是 Remote Procedure Call 的缩写形式,中文描述为远程过程调用,用来屏蔽远程调用跟本地调用的区别,是解决应用间通信的一种方式。RPC可以基于TCP/UDP,也可以基于.原创 2021-05-12 16:00:22 · 2163 阅读 · 0 评论 -
什么是RPC?
1、基本定义RPC,全称Remote Procedure Call, 即远程过程调用。主要作用是屏蔽网络编程细节,实现调用远程方法就像调用本地方法(同一个进程中的方法)一样的体验。同时屏蔽底层网络通信的复杂性,让我们更加专注业务逻辑的开发。2、RPC通信RPC是一个远程调用,肯定是需要跨服务器而非本机,所以需要网络编程才能实现,这就带来了以下几个问题:Call ID 映射在本机的函数调用中,函数体是直接通过函数指针来指定的,当函数调用时,编译器会自动调用相应的函数指针。但是在远原创 2021-05-12 12:50:52 · 20770 阅读 · 1 评论 -
vmware 桥接模式下无法上网的终极解决方法
1、关闭防火墙关闭物理主机和虚拟机的防火墙再重试;systemctl stop firewalld # 临时关闭防火墙 systemctl disable firewalld # 禁止开机启动2、查看桥接模式下的物理网卡是否对应正确3、查看物理主机的网络属性,关键看 以下两点:1. VMware Bridge Protocol是否选择2.连接时使用的网卡是否跟虚拟机桥接模式下桥接到的网卡一致3.如果有DNE LightWeight Filter,则 取消选择..原创 2021-04-29 17:48:43 · 38816 阅读 · 18 评论 -
解决‘protoc-gen-grpc-gateway‘ 不是内部或外部命令的问题
1、问题背景操作系统:win10GO版本:go.1.15.5GO mod相关配置为:因为被墙的原因,无法直接执行命令go install github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-grpc-gateway 因此,只能先执行命令:go get github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-grpc-gatewa原创 2021-04-22 22:59:02 · 2579 阅读 · 0 评论 -
gRPC 的入门实例
1、前提已安装好golang,并开启go mod,同时设置golang的国内镜像2、安装protoc 3.13.0下载链接:https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0下载相应平台安装包3、为protoc安装go语言插件,安装grpc-gateway V1版本在命令行中,执行以下命令:go install github.com/grpc-ecosystem/grpc-gateway/tree原创 2021-04-19 23:36:51 · 201 阅读 · 0 评论 -
针对Windows环境 protoc-gen-go 不是内部或外部命令的解决方案
问题:解决方式:运行命令 go env查看GOPATH路径设置环境变量,把GOPATH\bin设置到PATH环境变量中:测试:运行命令:protoc -I=. --go_out=paths=source_relative:gen/go trip.proto原创 2021-04-18 15:33:34 · 4489 阅读 · 0 评论 -
一张图搞定RPC框架核心原理
原创 2021-04-13 17:37:43 · 193 阅读 · 0 评论 -
Jenkins 问题 No such plugin: cloudbees-folder
(1) 安装插件 cloudbees-folder 失败,是因为下载的 Jenkins.war 里没有 cloudbees-folder 插件,需要去 https://updates.jenkins-ci.org/download/plugins/cloudbees-folder/ 下载一个插件(2)访问 IP:PORT/jenkins/restart,越过配置插件的页面,直接访问点击【系统管理】–【管理插件】–【高级】–【上传手动下载好的插件插件】...原创 2021-03-30 18:40:44 · 1067 阅读 · 1 评论 -
OSI参考模型中各个分层的作用
参考文档:图解TCP/IP1.5.4原创 2021-03-17 21:52:25 · 71 阅读 · 0 评论 -
TCP/IP与OSI参考模型
原创 2021-03-16 23:24:06 · 79 阅读 · 0 评论