go语言搬砖之go jmespath实现查询json数据

目录简介例子小结简介go-jmespath是用Go语言实现jmespath的一个库,jmespath是json的查询语言,所以在Go中利用go-jmespath可以做到查询json的作用go-jmespath官网: https://git...

gtoken替换jwt实现sso登录的排雷避坑

目录前言gtokengtoken替换jwt解决的问题兼容JWTgtoken实现原理踩坑之旅1 gtoken版本2 gtoken存储问题3 不能跨环境使用token4 测试账号不规范问题总结前言前段时间整理的文...

2022-08-06

Golang泛型的使用方法详解

目录1. 泛型是什么2. 泛型的简单使用2.1. 泛型示例2.2. 自定义泛型类型2.3. 调用带泛型的函数3. 自定义泛型类型的语法3.1. 内置的泛型类型any和comparable3.2. 声明一个自...

Go gRPC超时控制Deadlines用法详解

目录Deadlines为什么要设置gRPCClientServer验证总结Deadlines今天将介绍 gRPC Deadlines 的用法,这一个必备技巧。内容也比较简单。Deadlines 意指截止时间,在 gRPC 中强调 T...

gRPC超时拦截器实现示例

目录介绍安装快速开始1.创建 boot.yaml2.创建 main.go3.启动 main.go4.验证介绍本文介绍如何通过 rk-boot 快速搭建 gRPC 超时拦截器。什么是 gRPC 超时拦截器?拦截器会拦截...

GoFrame 框架缓存查询结果的示例详解

目录查询缓存相关方法:缓存对象缓存适配(Redis缓存)使用示例数据表结构示例代码小技巧运行结果分析总结后续几篇文章再接再厉,仍然为大家介绍GoFrame框架缓存相关的知识点,以及自...

Go gRPC服务双向流式RPC教程

目录前言情景模拟新建proto文件创建Server端创建Client端总结前言上一篇介绍了客户端流式RPC,客户端不断的向服务端发送数据流,在发送结束或流关闭后,由服务端返回一个响应。本...

Go语言pointer及switch fallthrough实战详解

前言今天继续为大家更新Go语言学习记录的文章。首先说明pointer指针和switch是两个并没有直接关系的知识点,放在一篇文章中将的原因是,这两个知识点在学习和使用的过程中往往...

golang高并发系统限流策略漏桶和令牌桶算法源码剖析

目录前言漏桶算法样例源码实现令牌桶算法样例源码剖析Limit类型Limiter结构体Reservation结构体Limiter消费tokenlimiter归还Token总结前言今天与大家聊一聊高并发系统中的...

线上问题排查之golang使用json进行对象copy

前言:记一次golang使用json进行对象copy的内存溢出问题排查问题现象:新增的功能,灰度部署在k8s集群的服务,发现机器老是被打崩,因为是灰度,且控制了qps在100多,但是机器却崩...

Go1.18新特性对泛型支持详解

目录1、泛型是什么2、泛型类型的定义2.1、声明一个自定义类型2.2、内置的泛型类型any和comparable2.3、泛型中的~符号是什么1、泛型是什么Go1.18增加了对泛型的支持,泛型是一...

实用的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 服务,都是通过客户端来直接请求服务端。...

gRPC的发布订阅模式及REST接口和超时控制

目录前言发布和订阅模式proto 文件服务端订阅客户端发布客户端REST 接口proto 文件REST 服务gRPC 服务超时控制proto 文件客户端服务端总结前言上篇文章 gRPC,爆赞 直接爆了,...

2022-08-06

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。上周停更了一周,也是用来...

Go语言程序开发gRPC服务

目录前言介绍入门protoserverclient流方式protoserverclient验证器protoToken 认证认证函数:拦截器:初始化:实现接口:连接:单向证书认证生成证书gRPC 代码双向证书认证生成带 SAN...

Go gRPC教程实现Simple RPC

目录前言新建proto文件创建Server端创建Client端总结前言gRPC主要有4种请求和响应模式,分别是简单模式(Simple RPC)、服务端流式(Server-side streaming RPC)、客户端流式(Clien...

Golang gRPC HTTP协议转换示例

gRPC HTTP协议转换正当有这个需求的时候,就看到了这个实现姿势。源自coreos的一篇博客,转载到了grpc官方博客gRPC with REST and Open APIs。etcd3改用grpc后为了兼容原来的ap...

Go Web编程添加服务器错误和访问日志

目录前言初始化日志记录器添加错误日志添加访问日志前言错误日志和访问日志是一个服务器必须支持的功能,我们教程里使用的服务器到目前为止还没有这两个功能。正好前两天也写...

Go单元测试工具gomonkey的使用

目录Go 单元测试工具单测Go 单元测试工具gomonkeygomonkey 打桩失败的可能原因goconvey为全局变量打一个桩为一个函数打桩什么是内联?Go 单元测试工具测试分为4个层次单元测...

Go语言Zap库Logger的定制化和封装使用详解

目录前言Go 语言原生的LoggerGo 语言原生Logger的缺点Zap 日志库Zap 的使用方法安装zap设置 Logger定制 Zap 的 Logger日志切割封装 Logger总结前言日志无论对于程序还是程...

Go语言fsnotify接口实现监测文件修改

目录引言安装工具关键类型Event结构体Op类型Watcher结构体Channel函数Watcher工厂函数完整例子引言在开发过程中,经常需要观察本地文件系统的更改。经过谷歌了几个小时后,到了...

golang协程与线程区别简要介绍

目录一、进程与线程二、并发与并行三、go协程与线程1.调度方式2.调度策略3.上下文切换速度4.栈的大小四、GMP模型一、进程与线程进程是操作系统资源分配的基本单位,是程序运...

go zero微服务实战系服务拆分

目录微服务概述服务划分BFF层工程结构代码初始化结束语微服务概述微服务架构是一种架构风格,它将一个大的系统构建为多个微服务的集合,这些微服务是围绕业务功能构建的,服务关...

Golang接口型函数使用小结

目录常规接口实现接口型函数出场进一步改造什么是接口型函数?顾名思义接口函数指的是用函数实现接口,这样在调用的时候就会非常简便,这种方式适用于只有一个函数的接口。这里以...

Go微服务项目配置文件的定义和读取示例详解

目录前言场景定义配置配置文件加载配置文件实现原理总结前言我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件。虽然这没有太多难度,但是配置...

Go类型安全的HTTP请求示例详解

目录前言Go 原生写法httpc 实现更多能力前言对 Gopher 来说,虽然我们基本都是在写代码让别人来请求,但是有时候,我们也需要去请求第三方提供的 RESTful 接口,这个时候,我们才能感...

go-spew调试利器详解

目录go-spewDump系列函数自定义配置小结References对于应用的调试,我们经常会使用 fmt.Println来输出关键变量的数据。或者使用 log 库,将数据以 log 的形式输出。对于基础数...

返回顶部
顶部