Go gRPC 简介gRPC 是由 Google 开源的基于 HTTP/2 协议的开源远程过程调用(RPC)框架,使用 Protocol Buffers 序列化协议。相比于传统的 HTTP+JSON 的通信方式,gRPC 更轻量、更快速,拥有更多的优点。Go gRPC ...
go
go语言map转结构体
方式一、通过mapstructure.Decode()方法 可以通过github.com/mitchellh/mapstructure包的mapstructure.Decode(map[string]interface,*struct)方法将map转换成结构体,该方法的参数有两个,第一个参数是要转换的m...
golang 反向代理 Gin框架反向代理
概念: 反向代理是什么?有个很棒的说法是流量转发。服务端获取到客户端来的请求,将它发往另一个服务器,从另外一个服务器那里获取到响应再回给原先的客户端。反向的意义简单来说在于这个代理自身决定了何时...
Go语言执行cmd命令库
Go语言执行cmd命令库 有时候我们需要通过代码的方式去执行 linux 命令,那么 os/exec 这个系统库刚好提供了相应的功能。 Golang语言中提供了一个 os/exec 包,它提供了一组函数和结构,用于调用外部程序,这...
Go如何实现重试队列
什么是重试队列 重试队列(Retry Queue)是一种策略,主要用于处理网络请求失败的情况。当应用程序向服务器发出请求并且该请求失败时,该请求将被加入到重试队列中。然后应用程序会定时检查重试队列,对队列中...
golang调用python
Golang调用Python Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发语言。Python很适合让搞算法的写写模型,而Golang很适合提供API服务,而我最近碰到一个场景,在golang提供Api的服务时...
go 中使用redis 中的 list 队列实现异步处理
reids的链表结构,可以轻松实现阻塞队列,可以使用左进右出的命令组成来完成队列的设计。比如:数据的生产者可以通过Lpush命令从左边插入数据,多个数据消费者,可以使用BRpop命令阻塞的“抢”列表尾部的数据。下面...
gin分片上传文件
为什么要使用分片上传 这个为什么已经是老篇常谈了,主要的原因无非就是文件比较大,一次性上传如果网络中断等情况客户端又得重新上传,而且没法补充上传。 切片上传流程 客户端: 有一个大文件,对这个文件进...
golang上传当处理大文件上传时,分块上传和流式上传
golang上传当处理大文件上传时,分块上传和流式上传 type Uploads struct { } type ReturnPdf struct { Url string `json:"url"` Img string `json:"img"` Name string `json:"name"` } func (e...
go 阿里云oss上传
func (e Aliyun)UploadFile2(c *gin.Context) (returnPdf ReturnPdf, err error) { /* 通过form-data上传文件,文件名:file */ file,err := c.FormFile("file") if err != nil { return re...