GoLang

scrypt golang 登录demo

Crafted by Genie You scrypt golang 登录demo Genie 以下是一个使用Go编写的简单登录Demo,它使用了scrypt来加密和验证密码: package main import ( "fmt" "golang.org/x/crypto/scrypt" ) fu ......
scrypt golang demo

Golang一日一库之logrus

前言 之前一篇文章介绍了 日志库zap https://www.cnblogs.com/zichliang/p/17311480.html 毋庸置疑,zap库无论是Golang在项目中 还是生产中都极其优秀的一个数据库,而且他是当今Go最快的日志库 性能最高的日志库。 但是今天缺不是来说他的,今天介 ......
Golang logrus

golang语言下,在x86的linux平台上编译arm64二进制

转载自:https://www.annhe.net/article-4542.html 编译etcd测试工具benchmark: CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build . 概述 有很多开源软件并没有提供 arm 安装包或者二进制,或者能通过包管 ......
二进制 语言 golang linux 平台

Golang - Option模式(2)(函数选项模式)

函数式选项模式(Functional Options Pattern) 函数式选项模式是一种在 Go 中构造结构体的模式,它通过设计一组非常有表现力和灵活的 API 来帮助配置和初始化结构体。 优缺点 选项模式有很多优点,例如:支持传递多个参数并且在参数发生变化时保持兼容性;支持任意顺序传递参数;支 ......
模式 函数 Golang Option

Golang - Option模式(函数选项模式)

解释 Option模式的专业术语为:Functional Options Pattern(函数式选项模式)Option模式为golang的开发者提供了将一个函数的参数设置为可选的功能,也就是说我们可以选择参数中的某几个,并且可以按任意顺序传入参数。比如针对特殊场景需要不同参数的情况,C++可以直接用 ......
模式 函数 Golang Option

Go For Web:Golang http 包详解(源码剖析)

前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了 ......
源码 Golang http For Web

day8 golang-chan-协程-定时器-锁-等待组

package main import ( "fmt" "math/rand" "sync" "sync/atomic" "time" ) func example1() { //不要这样写,阻塞就死无法解除,零值nil var c1 chan int fmt.Printf("%d,%d,%v", ......
定时器 golang-chan golang day8 chan

golang 必会之 pprof 监控系列(5) —— cpu 占用率 统计原理

golang pprof 监控系列(5) —— cpu 占用率 统计原理 大家好,我是蓝胖子。 经过前面的几节对pprof的介绍,对pprof统计的原理算是掌握了七八十了,我们对memory,block,mutex,trace,goroutine,threadcreate这些维度的统计原理都进行了分 ......
用率 原理 golang pprof cpu

Go For Web:一篇文章带你用 Go 搭建一个最简单的 Web 服务、了解 Golang 运行 web 的原理

前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了 ......
Web 篇文章 原理 Golang Go

golang 指针自动解引用

在 Go 中,对指针类型进行解引用操作可以使用星号(*)运算符。如果要自动解引用一个指针,可以使用点号(.)运算符来访问其字段或方法,Go 会在必要时自动解引用该指针。 例如,假设有一个结构体类型的指针变量 p,其中包含一个整数字段 x: type myStruct struct { x int } ......
指针 golang

Golang的GMP模型

一、调度器的由来和分析 单进程时代的两个问题: 单一执行流程、计算机只能一个任务一个任务处理 进程阻塞所代理的CPU浪费时间 多进程和多线程的问题: 多进程/多线程解决了阻塞问题 但是引入了新的问题 进程/线程的数量越多,切换成本就越大,也就越浪费 多线程随着同步竞争(如锁、竞争资源冲突等)开发设计 ......
模型 Golang GMP

批量上传GPT知识库,前端elementui的upload上传组件,后端Golang的上传接口实现

为了实现批量上传GPT的知识库并且功能,那么这个上传组件就必不可少,需要能把文档上传到服务器中。 前端部分,我是采用的cdn引入的形式,引入的elmentui。该框架是有上传组件的,可以参考我的用法: action部分就是上传接口,其他三个是上传之前的处理,上传成功和失败后的回调函数 <el-upl ......
前端 知识库 组件 elementui 接口

开发GPT知识库功能时,需要上传word文档让知识库向量化,Golang读取word文档功能

开发GPT知识库功能时,需要上传word文档让知识库向量化,Golang读取word文档功能。 找到一个开源库 baliance.com/gooxml/document,但是只支持docx后缀,下面是使用方法 import ( "baliance.com/gooxml/document" ) fun ......
知识库 功能 文档 知识 word

golang 标准库bytes有哪些知识点

标准库bytes是Go语言中用来操作字节串(byte slice)的包。以下是bytes包的一些重要知识点: bytes.Buffer类型:这是bytes包中最常用的类型之一。Buffer类型表示一个缓冲区,可以用来动态地构建字节串,也可以用来读取字节串。 bytes.NewBuffer()函数:这 ......
知识点 标准 知识 golang bytes

golang 标准库context有哪些知识点

Golang 标准库中的 context 包提供了一种在不同函数之间传递请求范围数据以及控制取消操作的机制。下面是一些 context 包的知识点: Context 的基本使用:使用 context.Background() 函数创建一个空的 Context,使用 context.WithCance ......
知识点 context 标准 知识 golang

Golang一日一库之 日志库 zap

简介 在开发过程中 会使用到日志库去记录错误的日志,尤其是golang中 有无穷无尽的error 如果不记录,当你的代码出错,就无从排错了。 zap 是开源的 Go 高性能日志库 主要有以下特点: 支持不同的日志级别 能够打印基本信息等但不支持日志的分割 但是可以使用 lumberjack 也是 z ......
Golang 日志 zap

golang 代码实现单调栈

有种特殊的栈,叫做单调栈,顾名思义就是栈底到栈顶呈现单调特性,比如对于列表:[]int{6, 10, 3, 7, 4, 12},如果要实现单调栈,并不是所有入栈后呈降序或升序排列就是单调栈,如单调递增栈: 6 | 栈空,入栈 | [6] 10 | 10 > 6, 符合递增,入栈 | [6, 10] ......
代码 golang

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(JW ......
常用 Golang jwt-go jwt go

如何用Golang处理每分钟100万个请求

用Golang处理每分钟100万个请求 转载请注明来源:https://janrs.com/9yaq 面临的问题 在我设计一个分析系统中,我们公司的目标是能够处理来自数百万个端点的大量POST请求。web 网络处理程序将收到一个JSON文档,其中可能包含许多有效载荷的集合,需要写入Amazon S3 ......
Golang 100

golang中的map

0.1、索引 https://waterflow.link/articles/1666339004798 1、map的结构 map提供了键值对的无序集合,所有的键都是不重复的。在go中map是基于bmap数据结构的。在内部hash表是一个桶数组,每个桶是一个指向键值对数组的指针。每个桶里面可以保存8 ......
golang map

golang中的切片

索引:https://waterflow.link/articles/1666277946416 在go中切片的底层是数组,所以切片的数据连续存储在数组的数据结构中。如果底层的数组满了,切片还需要添加元素的话,底层数组就需要扩容。如果底层数组几乎为空时,就会缩容。 在切片内部其包含一个指向底部数组的 ......
golang

golang中的接口

0.1、索引 https://waterflow.link/articles/1666171320273 1、概念 接口提供了一种指定对象行为的方法。 我们使用接口来创建多个对象可以实现的通用抽象。 Go 接口不同的原因在于它们是隐式的。 没有像 implements 这样的显式关键字来标记对象 A ......
接口 golang

golang中的错误处理

0.1、索引 https://waterflow.link/articles/1666716727236 1、panic 当我们执行panic的时候会结束下面的流程: package main import "fmt" func main() { fmt.Println("hello") panic ......
错误 golang

golang中的字符串

0.1、索引 https://waterflow.link/articles/1666449874974 1、字符串编码 在go中rune是一个unicode编码点。 我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF-8编码为3个字节。所以rune也是int32的别名。 ty ......
字符串 字符 golang

golang常用库包:log日志记录-uber的Go日志库zap使用详解

Go 日志记录库:uber-go 的日志操作库 zap 使用 一、简介 zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。 go1.20.2 zap v1.24.0 zap的特性 高性能:zap 对日志输出进行了多项优化以提高它的性能 日志分级:有 Debug,Info,Warn ......
日志 常用 golang uber log

[golang]使用logrus自定义日志模块

简介 logrus是一个第三方日志库,性能虽不如zap和zerolog,但方便易用灵活。logrus完全兼容标准的log库,还支持文本、JSON两种日志输出格式。 特点 相较于标准库,logrus有更细致的日志级别,从高到低分别是:trace > debug > info > warn > erro ......
模块 golang logrus 日志

Golang创建临时文件

临时文件是一个程序运行时才创建,程序结束后就无用的文件。这就延伸出了一个很重要的点:不管创建的临时文件是否已经存在,程序都应该以读写的方式打开,也就是一旦打开,就会抹除原来的内容;程序结束时就无用的文件,这就需要在程序结束时自动删除。 现在的操作系统都提供了临时文件夹,临时文件夹的意思,就是重启操作 ......
文件 Golang

批量上传知识库功能-Golang读取Excel的数据

在 Go 语言中,读取 Excel 数据可以使用第三方库 github.com/tealeg/xlsx,该库提供了丰富的 API,可以方便地读取和操作 Excel 文件。 以下是一个简单的示例代码,演示了如何使用 github.com/tealeg/xlsx 库读取 Excel 文件: import ......
知识库 功能 知识 数据 Golang

Golang语言之Channel通信,并发编程

1.Go语言特点 Go是一种静态强类型的开源语言,诞生于2009年,是非常年轻的一门语言其主要目标时“兼具Python等动态语言的开发速度,同时又具备想C语言C++的安全性与应能”,其中最大的特点(优势)就是并发编程 不同于大多编程语言的多线程,golang的并发执行单元是一种称之为goroutin ......
Channel 语言 Golang

ChatGPT垂直行业私有数据知识库功能-咨询接口采用流式响应输出-JS和Golang实现流式响应

近期开发私有数据知识库功能,想要实现和ChatGPT聊天效果类似的逐字流式输出展示效果。 GPT3.5本身就有流式聊天补全接口,后端Golang对接后,也需要能流式输出。下面就介绍下前端JS后端Golang来实现这种输出效果 大部分介绍是使用EventStream来实现,我现在不使用EventStr ......
知识库 接口 ChatGPT 功能 知识