Golang 一日一库之jwt-go
本文地址 https://www.cnblogs.com/zichliang/p/17303759.html
github地址:https://github.com/dgrijalva/jwt-go
何为 jwt token?
什么是JSON Web Token?
JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的, ...
golang常用库包:log日志记录-uber的Go日志库zap使用详解
Go 日志记录库:uber-go 的日志操作库 zap 使用
一、简介
zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。
go1.20.2
zap v1.24.0
zap的特性
高性能:zap 对日志输出进行了多项优化以提高它的性能
日志分级:有 Debug,Info,Warn,Error,DPanic,Panic,Fatal 等
日志记录结构化:日志内容记录是结 ...
【go】uuid简介
通用唯一识别码(英语:universally unique identifier,简称uuid)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。uuid的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的uuid。在这样的情 ...
【新版】使用 go-cqhttp 扫码登录,一键接入 ChatGPT 机器人到 QQ 群
目录🎈 项目效果🎈 安装 go-cqhttp🎈 虚拟文件🎈 启动 ChatGPT
🎈 项目效果
由于 ChatGPT 目前只能在漂亮国使用,所以想要在国内使用 ChatGPT 必然险阻重重
不仅时时刻刻要跟企鹅公司斗智斗勇,还要时时刻刻都要跟 openai 公司打游击,真的是很难有一个稳定的版本供大家屡试不爽
在不断的游击战中,我们也是越战越勇,在 ...
kubernetes client-go功能介绍
client-go是什么?
client-go是Kubernetes官方提供的Go语言客户端库,用于与Kubernetes API服务器交互。使用client-go,您可以编写Go语言程序来创建、修改和删除Kubernetes对象,如Pod、Deployment、Service等。
作用
client-go的主要功能包括:
连接Kubernetes API服务器:client-go提供了一个API客户端,用于连接Kuberne ...
Go 中的反射 reflect 介绍和基本使用
一、什么是反射
在计算机科学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。(来自wikipedia)
反射是程序审查自身结构的能力,并能对程序做出一定的修改。
对于人来说,审查自身 ...
【Go并发编程】Go使用协程批量获取数据,加快接口返回速度
服务端经常需要返回一个列表,里面包含很多用户数据,常规做法当然是遍历然后读缓存。
使用Go语言后,可以并发获取,极大提升效率。
使用channel
package main
import (
"fmt"
"time"
)
func add2(a, b int, ch chan int) {
c := a + b
fmt.Printf("%d + %d = %d\n", a, b, c)
ch <- 1 //执行完了就写一条 ...
Go Gin 框架
简介
中文官网:https://gin-gonic.com/zh-cn/docs/introduction/
github:https://github.com/gin-gonic/gin
Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin
Go 1.13 及以上版本
特性
1. ...
Asynq 实现 Go 异步任务处理
目录Asynq 实现 Go 异步任务处理一、概述二、快速开始1. 准备工作2. 安装asynq软件包3. 创建项目asynq_task2. Redis连接项4. Task任务5. 编写程序6. 运行查看结果三、细节1. 关于asynq的优雅退出2. client中 client.Enqueue 的使用四、监控和管理工具
Asynq 实现 Go 异步任务处理
一、概述
今天为大家介绍一个Go处理异步任 ...
Go规则引擎:Gengine
gengine是一款基于golang和AST(抽象语法树)开发的规则引擎,使用一套自定义的简单语法来定义规则来实现语言无关,并且还执行规则执行的各种模式,功能也很强大。
核心API
对于gengine的使用,我们先掌握几个核心的API。
DataContext:用于注入规则中需要使用的数据或者API。
RuleBuilder:接收DataContext作为参数,并将用 ...
ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
前言
最近一段时间,我使用golang开发了一个新的ORM库。
为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般的难用。
然后我总结了他们呢的一些共性和差异点,于是形成了本文的主要内容。
本文会先说明什么是SQL编写难题,以及探讨一下 code first 和 d ...
go 环境搭建
SDK下载
下载地址:
https://golang.google.cn/dl/
https://studygolang.com/dl
这两个那个下载快 用那个 都是镜像 ,官网被墙了(你懂得)官网地址
https://golang.org/dl/
然后下载对应平台的安装包,例如我这里就是 win平台
安装
下载完成后,双击安装包,一路下一步即可,这里使用的是1.19.5版本
设置安装位置
...
go mod和go vendor的区别
这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
背景
在家安装的环境可能路径和环境变量配的有些问题,导致项目import的包全部标红,go mod tidy显示导入包不在路径,怎么可能不在路径呢。
这就好比我们写cpp程序,我们从官方库里include一个.h,而后自己图方便也写了个.h,但是程序并不能识别出我们自己写的.h, ...
Three.js 进阶之旅:新春特典-Rabbit craft go 🐇
声明:本文涉及图文和模型素材仅用于个人学习、研究和欣赏,请勿二次修改、非法传播、转载、出版、商用、及进行其他获利行为。
摘要
兔年到了,祝大家身体健康,万事顺利。本文内容作为兔年新春纪念页面,将使用 Three.js 及 其他前端开发知识,创建一个以兔子为主题的 3D 简单的趣味页面 Rabbit craft go。本文内容包括使 ...
像go 一样 打造.NET 单文件应用程序的编译器项目bflat 发布 7.0版本
现代.NET和C#在低级/系统程序以及与C/C++/Rust等互操作方面的能力完全令各位刮目相看了,有人用C#开发的64位操作系统: GitHub - nifanfa/MOOS: C# x64 operating system pro...,截图要介绍的是一个结合Roslyn和NativeAOT的实验性编译器bflat :https://github.com/bflattened/bflat。一年前的公众号文章 打造史上最小尺寸. ...
Go--cron定时任务
Cron是Go中用于设置定时任务的一个库,需要注意的是,Cron库分两个大版本,v1.2和v3.0,其功能和go get地址都是不同的,注意区分。
v1.2官方文档:https://pkg.go.dev/github.com/robfig/cron
v3官方文档:https://pkg.go.dev/github.com/robfig/cron/v3
区别:
v1.2版本默认支持精确到秒的cron表达式
v3版本默认不再是支 ...
GO安装及 mod vendor使用
软件下载
https://golang.google.cn/https://dl.google.com/go/go1.19.3.linux-amd64.tar.gz
环境变量设置
export GOWKS=/data/wks/tpf
export GOROOT=$GOWKS/app/go
export GOBIN=$GOWKS/bin
export GOPATH=$GOWKS
export PATH=$GOROOT/binGOBINPATH
GOWKS是自定义的GO工作空间,GO软件安装在其app/go目录下,GOWKS ...
GO生成UUID
uuid简介
通用唯一识别码(英语:universally unique identifier,简称uuid)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。
uuid的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。
如此一来,每个人都可以创建不与其它人冲突的uuid。 ...
Go map 竟然也会发生内存泄漏?
Go 程序运行时,有些场景下会导致进程进入某个“高点”,然后就再也下不来了。
比如,多年前曹大写过的一篇文章讲过,在做活动时线上涌入的大流量把 goroutine 数抬升了不少,流量恢复之后 goroutine 数也没降下来,导致 GC 的压力升高,总体的 CPU 消耗也较平时上升了 2 个点左右。
有一个 issue 讨论为什么 allgs(runtim ...
.NET 7 AOT 的使用以及 .NET 与 Go 互相调用
目录背景C# 部分环境要求创建一个控制台项目体验 AOT 编译C# 调用库函数减少体积C# 导出函数C# 调用 C# 生成的 AOTGolang 部分安装 GCCGolang 导出函数.NET C# 和 Golang 互调C# 调用 GolangGolang 调用 C#其他
背景
其实,规划这篇文章有一段时间了,但是比较懒,所以一直拖着没写。
最近时总更新太快了,太卷了,所以借着 ...