going

go web学习(五)

跟着刘旭老师学go web做的笔记 【Go Web 编程快速入门【Golang/Go语言】(完结)】 https://www.bilibili.com/video/BV1Xv411k7Xn/?p=27&share_source=copy_web&vd_source=03c1dc52eeb374782 ......
web go

go语言调度gmp原理(5)

# go语言调度gmp原理(5) ## 线程管理 go语言的运行时会通过调度器改变线程的所有权,它也提供了runtime.lockOSthread和runtime.UnlockOSthread,让我们能绑定goroutine和线程完成一些比较特殊的操作。goroutine应该在调用操作系统服务或者依 ......
原理 语言 gmp

go检测状态 template

type systemStatus struct { Name string Status string}type InitSystemStatus struct { Error string ServiceList []systemStatus} func (n *InitSystemChecke ......
template 状态

go检查所有主机的时间同步

func checkTimeSync(s ssh.Interface, ipList []string) error { logger.Info("checker:timeSync %v", ipList) for _, ip := range ipList { timeStamp, err := ......
主机 时间

kubernetes部署Open-LDAP、Go-admin-ldap

1.搭建openLDAP 1.1.创建命名空间 kubectl create namespace kube-ops 1.2.创建pvc 存储使用的是nfs方式挂载,storageClassName为默认,所以可写可不写。 mkdir -p ~/ldap ; cd ~/ldap cat > pvc.y ......

Seata-go TCC 设计与实现

*作者:刘月财* 本文主要介绍 seata-go 中 TCC 的设计思路、异常处理以及在实战中的使用。 Seata 是一款开源的分布式事务解决方案,致力于为现代化微服务架构下的分布式事务提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 等多种事务模式 ......
Seata-go Seata TCC go

go语言变量定义及类型

变量 变量:赋值后,可以改变值的标识符。 建议采用驼峰命名法。 var a // 错误,无法推测类型 var b int // 正确,只声明,会自动赋为该类型的零值 var c, d int // 正确,声明连续的同类型变量,可以一并声明,会自动赋为该类型的零值 var b = 200 // 错误, ......
变量 语言 类型

go web学习(四)

# 中间件 ## 什么是中间件 >请求————> 中间件 ————> Handler 响应 <———— Middleware <———— Handler ## 创建中间件 ```go func ListenAndServe(addr string, handler Handler) error ha ......
web go

go语言中实现生产者-消费者模式有哪些方法呢

# 1. 简介 本文将介绍在 Go 语言中实现生产者消费者模式的多种方法,并重点探讨了通道、条件变量的适用场景和优缺点。我们将深入讨论这些方法的特点,以帮助开发者根据应用程序需求选择最适合的方式。通过灵活运用 Go 语言提供的并发原语,我们能够实现高效、可靠的生产者消费者模式,提升系统的并发性能和可 ......
生产者 消费者 语言 模式 方法

GO web 学习(三)

# 路由 Controller / Router ## 角色 - main():设置类工作 - controller: - - 静态资源 - - 把不同的请求送到不同的 controller 进行处理 它会根据请求,匹配最具体的 handler ## 路由参数 静态路由:一个路径对应一个页面 /ho ......
web GO

Go源码阅读——github.com/medcl/esm —— v7.go

esm(An Elasticsearch Migration Tool)—— v7.go https://github.com/medcl/esm release: 8.7.1 通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高 zuoyang 的编程水平,所谓 "他山之石,可以攻玉" ......
源码 github medcl com esm

Go源码阅读——github.com/medcl/esm —— v5.go

esm(An Elasticsearch Migration Tool)—— v6.go https://github.com/medcl/esm release: 8.7.1 通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高 zuoyang 的编程水平,所谓 "他山之石,可以攻玉" ......
源码 github medcl com esm

用go设计开发一个自己的轻量级登录库/框架吧(拓展篇)

用go设计开发一个自己的轻量级登录库/框架吧(拓展篇),给自己的库/框架拓展一下吧,主库:https://github.com/weloe/token-go ......
轻量 轻量级 设计开发 框架

2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么?

2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么? 答案2023-05-20: # go语言的slice扩容流程 go版本是1.20.4。 扩容流程见源码见runtime/slice.go文件中的`growslice` 函数。 `growslice` 函数的大致过程如 ......
语言 流程 slice 2023 rust

文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?

# go语言的slice和rust语言的Vec的扩容流程是什么? ## 文心一言: 在Go语言中,slice(切片)和Rust语言中的Vec都是用于存储一组固定长度的元素的数据结构。它们的扩容流程略有不同,下面是它们的基本概述: 1.Go语言的slice扩容: 当Go语言的slice用完了可用空间时 ......
语言 文心 流程 chatgpt slice

Go源码阅读——github.com/medcl/esm —— v5.go

esm(An Elasticsearch Migration Tool)—— v5.go https://github.com/medcl/esm release: 8.7.1 通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高 zuoyang 的编程水平,所谓 "他山之石,可以攻玉" ......
源码 github medcl com esm

【Go】彩云小译翻译接口js逆向解密返回值

一、前言 对彩云小译网页版进行抓包分析,将js算法代码转换成go代码,使用go发送http请求编写一个翻译小工具。 主要实现: 翻译(解密翻译结果) 单词字典查询 生成JWT(保持有效期) 二、抓包 打开网页按F12调出开发人员工具,再切换到网络选项卡,在输入框里输入内容开始抓包,会抓到两个接口,t ......
彩云 接口

go文件夹遍历

path/filepath 包涉及到路径操作时,路径分隔符使用 os.PathSeparator. Go是一个跨平台的语言,不同系统,路径表示方式有所不同,比如 Unix 和 Windows 差别很大.本包能够处理所有的文件路径,不管是什么系统. Go标准库中还有path, path 和 path/ ......
文件夹 文件

如何使用Go与MQTT进行通信

简介 本文介绍了如何使用 Go 编程语言与 MQTT(Message Queuing Telemetry Transport)进行通信。MQTT 是一种轻量级的消息传输协议,广泛应用于物联网和实时通信场景。通过本文的指导,您将学习如何使用 Go 语言创建 MQTT 客户端,进行消息的发布和订阅。 准 ......
MQTT

go配置

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘go env -w GO111MODULE=on go mod init xxx //xxx代表文件夹名 ......

Go开源世界主流成熟ORM框架gorm实践分享

在GoLang世界中有很多优秀的ORM库,今天就介绍主流之一的GORM三方库,了解其核心功能,然后从其支撑数据类型模型和约定开始巩固其基础,接着以安装gorm库及其mysql驱动为基础编写常见CRUD代码示例,进入了解其事务、转换、分片等知识,最后演示其Json序列化示例。 ......
框架 主流 世界 gorm ORM

An Attempt at Reducing Costs of Disk I/O in Go

为了实现磁盘上的IO,go语言使用一组IO线程池用来提高CPU的使用率 本文是在go语言上尝试了接入了linux libaio,并没有发现性能的提升。 使用O_DIRECT意味着数据直接到达磁盘上,这将不能有效的利用pagecache用来加速,合并读写请求;O_DIRECT的方式对读写的大小有限制, ......
Reducing Attempt Costs Disk An

go语言调度gmp原理(2)

go语言调度gmp原理(2) 创建goroutine 通过runtime.newproc函数调用,runtime.newproc的入参是参数大小和表示函数的指针funcval,它会获取goroutine以及调用方的程序计数器,然后调用runtime.newproc1函数获取新的goroutine、结 ......
原理 语言 gmp

go语言调度gmp原理(3)

go语言调度gmp原理(3) 调度循环 调度器启动之后,go语言运行时会调用runtime.mstart和runtime.mstart1,前者会初始化g0的stackguard0和stackguard1字段,后者会初始化线程并调用runtime.schedule进入调度循环 func schedul ......
原理 语言 gmp

【Go新手起步01】5步完成 vscode的go插件安装跟激活。

首先下载vscode,进行两个插件安装,如图所示 然后下载go语言,在官网https://go.dev/doc/install下载 cmd打开,输入go version验证下载是否成功。 在dos页面输入 go env -w GO111MODULE=on go env -w GOPROXY=http ......
激活 插件 新手 vscode

Go语言中的GC

Go的垃圾回收机制 垃圾回收(GC)是在后台运行一个守护线程,它的作用是在监控各个对象的状态,识别并且丢弃不再使用的对象来释放和重用资源。 简单的说,垃圾回收的核心就是标记出哪些内存还在使用中(即被引用到),哪些内存不再使用了(即未被引用),把未被引用的内存回收掉,以供后续内存分配时使用。 垃圾回收 ......
语言

c-for-go cgo 绑定自动生成工具

c-for-go 可以快速的生成cgo 绑定代码的工具,目前有不少golang 项目使用了此工具,比如cloudflare/ipvs 也使用了此工具 参考处理 参考使用 这个是libvpx 的一个项目 yaml 定义文件 GENERATOR: PackageName: vpx PackageDesc ......
自动生成 c-for-go 工具 for cgo

chatgpt帮我创建一个由go+mysql+jwt+gorm搭建的restapi

好的,下面是一个简单的由go+mysql+jwt+gorm搭建的REST API示例: 首先,你需要创建一个新的Go模块。你可以使用如下命令来创建一个名为example的新模块: go mod init example 接下来,你需要安装需要的依赖库,使用以下命令进行安装: go get githu ......
chatgpt restapi mysql gorm jwt

下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布

写在开篇 关于上篇 本篇在 《上篇:带你手工体验从写代码、编译、打包镜像、部署到K8S的全过程》 的基础上,将手动的过程通过jenkins工具将其改造成自动化。 环境准备 我的环境说明: | 组件 | 安装方式 | 访问IP | 访问端口 | | | | | | | jenkins | docker ......
下篇 上篇 手工 jenkins 项目

创建一个由go+pgsql+jwt+gorm搭建的restapi

步骤如下:1. 创建数据库首先安装并启动Postgresql,然后使用pgAdmin或psql命令行创建一个数据库。例如,我们创建一个名为"testdb"的数据库:```CREATE DATABASE testdb;```2. 安装Go和相关库安装Go和相关的库,包括jwt-go和gorm:```g ......
restapi pgsql gorm jwt go