实用的Go语言开发工具及使用示例

目录前言json-to-goyaml-to-gotable-to-go命令行调用Go 代码调用前言孙悟空在花果山称王的时候,特意去了一趟东海,在那里淘到了如意金箍棒。因为身为一个山大王,怎么能没有一件...

Go gRPC进阶教程服务超时设置

目录前言客户端请求设置超时时间服务端判断请求是否超时运行结果总结前言gRPC默认的请求的超时时间是很长的,当你没有设置请求超时时间时,所有在运行的请求都占用大量资源且可...

Go gRPC进阶教程gRPC转换HTTP

目录前言gRPC转成HTTP编写和编译proto服务端代码修改使用postman测试生成swagger文档把swagger-ui转成Go代码,备用对外提供swagger-ui在swagger中配置bearer token验证测试总...

Go modules replace解决Go依赖引用问题

为什么会用到 replace取名是一个很有讲究的事情,但每个人都不一样。一开始,我写了一个 A 项目,代码仓名称为 project-alpha但 go.mod 里的 package 设置的是 github.com/k8scat...

自定义Go Json的序列化方法译文

编译自 Custom JSON Marshalling in Go。前言我们知道,通过tag,可以有条件地实现定制Go JSON序列化的方式,比如json:",omitempty", 当字段的值为空的时候,我们可以在序列化后的...

Golang使用Consul详解

目录常用指令常用功能定义服务服务管理服务健康检查go使用官方api包来定义服务\查询服务常用指令agent指令-bind=0.0.0.0 指定consul所在机器的ip地址-http-port 指定web接...

GoFrame框架gredis优雅的取值和类型转换

目录取值方法不推荐推荐DoVar示例ReceiveVar示例HashSet示例小技巧总结上一篇文章为大家介绍了 GoFrame gcache使用实践 | 缓存控制 淘汰策略 ,得到了大家积极的反馈。后续几...

Go程序员踩过的defer坑错误处理

目录前言一、简单的例子二、一定不要在 for 循环中使用 defer 语句三、定义函数时就不要使用命名返回值四、defer 表达式的函数如果在 panic 后面,则这个函数无法被执行。五...

Golang实现程序优雅退出的方法详解

目录1. 背景2. 常见的几种平滑关闭2.1 http server 平滑关闭2.2 gRPC server 平滑关闭2.3 worker 协程平滑关闭2.4 实现 io.Closer 接口的自定义服务平滑关闭2.5 集成其他框...

Go gRPC环境安装教程示例详解

目录前言安装 protobuf安装相关包创建并编译proto文件VSCode-proto3插件介绍前言gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计,带来诸如双向流、流控、...

Go gRPC服务端流式RPC教程示例

目录前言情景模拟:实时获取股票走势新建proto文件创建Server端创建Client端思考总结前言上一篇介绍了简单模式RPC,当数据量大或者需要不断传输数据时候,我们应该使用流式RPC,它...

Go gRPC服务proto数据验证进阶教程

目录前言创建proto文件,添加验证规则把grpc_validator验证拦截器添加到服务端其他类型验证规则设置总结前言上篇介绍了go-grpc-middleware的grpc_zap、grpc_auth和grpc_recov...

Go Grpc Gateway兼容HTTP协议文档自动生成网关

目录前言一,grpc-gateway介绍二,grpc-gateway环境准备二,编写grpc-gateway服务四,使用gateway生成swagger文档五,性能对比http -> go -> grpc -> gohttp -> go -> http -> grpc_g...

go modules中replace使用方法

目录使用replace替换package示例使用replace替换package因为某些未知原因,并不是所有的包都能直接用go get获取到,这时我们就需要使用go modules的replace功能了。replace顾名...

Go json自定义Unmarshal避免判断nil示例详解

目录前言使用默认的 Unmarshal 方法自定义的 Unmarshal 方法前言腾讯《Go安全指南》中提到【必须】nil指针判断:进行指针操作时,必须判断该指针是否为nil,防止程序panic,尤其在...

golang 对象深拷贝的常见方式及性能

目录关于golang拷贝的概念完整代码总结关于golang拷贝的概念Go语言中所有赋值操作都是值传递,如果结构中不含指针,则直接赋值就是深度拷贝;如果结构中含有指针(包括自定义指针,以...

Go1.18新特性使用Generics泛型进行流式处理

前言Stream 是一个基于 Go 1.18+ 泛型的流式处理库, 它支持并行处理流中的数据. 并行流会将元素平均划分多个的分区, 并创建相同数量的 goroutine 执行, 并且会保证处理完成...

grpcurl通过命令行访问gRPC服务

目录前言gRPC Serverhelloworld.protomain.gogrpcurl 安装MacDockergo toolgrpcurl 使用可能遇到的错误总结前言一般情况下测试 gRPC 服务,都是通过客户端来直接请求服务端。...

Go gRPC服务客户端流式RPC教程

目录前言情景模拟:客户端大量数据上传到服务端新建proto文件创建Server端创建Client端思考总结前言上一篇介绍了服务端流式RPC,客户端发送请求到服务器,拿到一个流去读取返回的...

Go gRPC服务进阶middleware使用教程

目录前言go-grpc-middleware简介grpc_zap日志记录grpc_auth认证grpc_recovery恢复总结前言之前介绍了gRPC中TLS认证和自定义方法认证,最后还简单介绍了gRPC拦截器的使用。gRP...

Go实现分布式系统高可用限流器实战

目录前言1. 问题描述2. 信号量限流2.1 阻塞方式2.2 非阻塞方式3. 限流算法3.1 漏桶算法3.2 令牌桶算法3.3 漏桶算法的实现改进4. Uber 开源实现 RateLimit 深入解析4.1 引入...

Go语言反射获取类型属性和方法示例

目录reflect.StructField 和 reflect.MethodStructField遍历 Hero 结构体Method小结reflect.StructField 和 reflect.Method如果变量是一个结构体,我们还可以通过结构体域类...

读取Go项目中的配置文件的方法

目录来看看gonfig是怎么解决这个问题的约定根据项目定制化配置文件原理篇Go语言提供了很简便的读取json和yaml文件的api,我们可以很轻松将一个json或者yaml文件转换成Go的结...

Go标准库http与fasthttp服务端性能对比场景分析

目录1. 背景2. 性能测试3. 对结果的简要分析4. 优化途径1. 背景Go初学者学习Go时,在编写了经典的“hello, world”程序之后,可能会迫不及待的体验一下Go强大的标准...

Go开源项目分布式唯一ID生成系统

目录前言项目背景项目使用HTTP 方式gRPC 方式本地开发项目架构前言今天跟大家介绍一个开源项目:id-maker,主要功能是用来在分布式环境下生成唯一 ID。上周停更了一周,也是用来...

返回顶部
顶部