
Go
文章平均质量分 55
水淹萌龙
攻城狮, 熟悉,Java,Spring Cloud,Go,K8s,ISTIO,Docker,Python,React,Vue
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
技术博客:Gin框架嵌套数组参数绑定实践
该方案已在生产环境稳定运行,正确处理了K8s多工作负载类型的参数接收需求。在K8s管理平台开发中,我们经常需要处理复杂参数的接收。原创 2025-03-17 10:29:40 · 160 阅读 · 0 评论 -
使用GO语言验证证书的有效期
定时扫描K8s集群证书的过期时间, exporter 需要运行 daemonset 感觉过于浪费资源, 打算自己用Go下一个工具, 定时在每个节点上都拉起一下, 跑完了就销毁.替换为您要验证的证书文件的路径。代码将读取证书文件,解析证书并检查当前时间是否在证书的有效期内。根据验证结果,将输出相应的结果。在上面的代码中,需要将。原创 2024-03-26 14:51:45 · 774 阅读 · 1 评论 -
Go 中 for循环内使用协程的变量值脏读问题
如下代码的输出, 我们在 for 循环中,使用了协程(go runtime)。原因:因为这里的v 是一个指针变量, 每次循环都会重新赋值, 再执行每次的。之前,v 的值就被改了, 这里被坑惨了。重新声明一个变量,传给协程。不是预想的 a,b, c 乱序。每个学Go的都要踩的坑。原创 2023-12-18 16:50:29 · 837 阅读 · 1 评论 -
对 K8s 中的 NameSpace的ResourceList进行加减操作
需要将命名空间内新家的STS所使用的配额自动加到NameSpace上, 就需要对NameSpace的ResourceList做加减操作。原创 2023-12-15 16:39:07 · 291 阅读 · 0 评论 -
将POD的ResourceList转为Namespace格式的ResourceList
k8s client 中 POD的ResourceList 和 NameSpace的ResourceList 格式不一样, 进行配额加减计算的时候需要转换, 因为开发了工具类。入参 req 是POD的 requests的ResourceList,lim 是 limits 的ResourceList。原创 2023-12-15 16:33:40 · 139 阅读 · 0 评论 -
K8s 的 ResourceList进行加减操作工具类
在Kubernetes Go客户端中,你可以使用一些基本的算术运算符来对ResourceList进行加减操作。ResourceList中的值是以。需要计算STS需要的资源并且扩容NameSpace的resourcequotas。类型表示的,这个类型实际上是一个map,其中key是。你可以通过操作map中的值来进行加减乘除操作。原创 2023-12-12 13:16:30 · 1011 阅读 · 1 评论 -
Go查询Elasticsearch
方法将其添加到查询中。这样,我们就可以在查询中同时使用查询条件和过滤条件。这个示例中的过滤条件是一个范围查询,用来过滤出年龄大于等于 18 岁的文档。希望这个示例能够帮助你使用 Go 语言向 Elasticsearch 发送带有过滤条件的分页请求。如果你有其他问题或需要进一步的帮助,请随时告诉我。在 Go 中需要在 Elasticsearch 中执行带有过滤条件的查询时,你可以使用。分别为你的 Elasticsearch 主机地址和索引名称。在这个示例中,我们添加了一个名为。同样,请替换代码中的。原创 2023-11-27 10:55:58 · 823 阅读 · 1 评论 -
K8s client go 创建CRD的informer
convertUnstructuredProject的实现 Project 是实现的 runtime.Object 接口的struct。dynamicClient 是 创建的K8s的client, 这里使用的是 Unstructured 接収的CRD的结果,需要监听K8s中CRD资源的变动, 做出相应的处理, 需要针对 CRD资源建立informer。加工了一下, convertUnstructuredProject 实现下面提供。原创 2023-11-23 08:49:14 · 1188 阅读 · 1 评论 -
gin通过反射来执行动态的方法
在gin中,可以通过反射来执行对应的方法。原创 2023-07-31 15:46:25 · 1728 阅读 · 0 评论 -
使用Go语言爬取网页并将其保存为图片
库来控制Chrome浏览器的Headless模式。我们首先创建一个新的上下文,然后导航到指定的网页。接着,我们等待页面加载完成,然后使用。要使用Go语言爬取网页并将其保存为图片,你可以使用Go的第三方库来实现。请注意,这只是一个简单的示例,你可能需要根据自己的需求进行更多的定制和错误处理。函数来截取屏幕截图,并将其保存到指定的文件中。记得在运行代码之前,确保已安装了。在这个示例中,我们使用。原创 2023-07-27 17:17:47 · 1180 阅读 · 0 评论 -
Go CallPlugin 的使用
Go CallPlugin 使用原创 2023-07-20 17:07:46 · 251 阅读 · 0 评论 -
Go实现非交互式调用交互式命令
Go 使用 exec.cmd 调用。非交互式原创 2023-07-14 09:58:15 · 595 阅读 · 0 评论 -
exec.Cmd 中 Start() 和 Run() 的区别
方法适用于需要顺序执行外部命令,并且需要等待它们执行完成后再继续的情况。它会阻塞当前 Goroutine,直到命令执行完成,因此适合用于需要等待结果的场景。方法启动一个外部命令,并等待命令完成后再返回。方法适用于需要并发执行多个命令的情况,因为它允许你同时启动多个命令并在后台处理它们的输出。方法会阻塞当前 Goroutine,直到命令执行完成并返回结果。方法启动一个外部命令,但不等待命令完成就返回。你可以使用这个对象来等待命令完成、获取命令的输出等。,如果命令执行过程中出现错误,则返回该错误。原创 2023-07-14 09:56:58 · 1432 阅读 · 0 评论 -
Go RSA的使用样例
【代码】Go RSA的使用样例。原创 2023-07-13 10:09:32 · 627 阅读 · 0 评论 -
Go使用Redis 发布和订阅消息
在Go中,Redis客户端库可以提供一个Publish方法来实现消息的发布。在Go中,Redis客户端库可以提供Subscribe方法来接收发布的消息。方法执行Redis的PUBLISH命令,将消息发布到指定的频道中。最后,我们打印出发布消息的结果。在这个示例中,我们使用go-redis库来建立与Redis服务器的连接。在这个示例中,我们使用go-redis库来建立与Redis服务器的连接。函数提供Redis服务器的地址和其他连接参数。函数提供Redis服务器的地址和其他连接参数。方法订阅指定的频道。原创 2023-07-07 09:58:03 · 1661 阅读 · 0 评论 -
Go Casbin 编写 MySQL适配器
在 Go Casbin 中使用 MySQL 作为策略存储是一种常见的方式。下面是一个简单的示例,演示了如何在 Go Casbin 中使用 MySQL。原创 2023-06-26 10:13:46 · 864 阅读 · 0 评论 -
Go Casbin 入门
Go Casbin 是一个非常强大和灵活的访问控制框架,它可以帮助您轻松实现各种访问控制模型。在本文中,我们介绍了 Go Casbin 的一些基本概念和用法,希望对您有所帮助。如果您想深入了解 Go Casbin,请访问 Casbin 的官方网站或查看其文档。原创 2023-06-26 10:12:08 · 1017 阅读 · 0 评论 -
Go中 go-sql-driver 的使用
go-sql-driver 是 Go 语言中一个常用的 MySQL 数据库驱动程序,支持 MySQL5.5、MySQL5.6 和 MySQL5.7。本文将介绍如何使用 go-sql-driver 包连接 MySQL 数据库。原创 2023-04-14 15:26:11 · 982 阅读 · 0 评论 -
Go中 gRPC ClientStream的使用
上面代码中,函数的第一个参数是一个用于接收客户端请求的流对象。当客户端关闭连接时,stream.Recv() 函数会返回一个 io.EOF 错误,此时处理流式请求的过程就结束了。在 gRPC 中,gRPC ClientStream 允许客户端通过流式传输数据到服务器。此外,gRPC ClientStream 还支持双向流式传输,即客户端和服务器可以同时通过 ClientStream 传输数据。在客户端代码中,需要使用 Stub 来调用 MyClientStreamMethod 方法。原创 2023-04-14 14:43:02 · 603 阅读 · 0 评论 -
Go中 Redis Client的使用
本文介绍如何使用 Go 语言的 redisClient 去连接 Redis 服务器,并进行常见的操作。以上就是在 Go 语言中使用 redisClient 的基本操作,希望本文对你有所帮助原创 2023-04-14 10:33:01 · 1655 阅读 · 0 评论 -
windows 使用 go-binddata
windows 使用 go-binddata原创 2023-03-28 13:44:08 · 469 阅读 · 0 评论 -
Go gRPC 简介和示例
gRPC 是由 Google 开源的基于 HTTP/2 协议的开源远程过程调用(RPC)框架,使用 Protocol Buffers 序列化协议。相比于传统的 HTTP+JSON 的通信方式,gRPC 更轻量、更快速,拥有更多的优点。原创 2023-03-21 20:40:00 · 927 阅读 · 0 评论 -
Go中 defer的使用
defer是 Golang 中的一个非常有用的关键字,它用于注册延迟调用,也就是一个函数的执行被延迟到调用它的函数返回之后,常用于资源清理、异常处理等场景。原创 2023-03-16 22:24:56 · 889 阅读 · 0 评论 -
GO的 ORM框架 GORM 入门
GORM 是一种流行的 Go 语言 ORM(对象关系映射)库,可以将结构体映射到数据库。它提供了一个简单易用的 API,可以无缝地连接并操作多种数据库,如 MySQL、PostgreSQL、SQLite 和 SQL Server。在这篇文章中,我将简要介绍如何使用 GORM 连接到数据库并进行基本的 CRUD(增加,读取,更新,删除)操作。原创 2023-03-16 14:52:19 · 1007 阅读 · 0 评论 -
Go 语言中结构体(Struct)的使用
Go 语言是一门典型的面向对象编程语言,同时也支持复杂的数据结构,其中最常用的就是结构体。结构体(Struct)是一组不同类型的变量的集合,可以像一个单一的变量一样使用,可以包含其他结构体或嵌套的结构体。在 Go 语言中,结构体是一种自定义类型,可以定义在函数外部,并且可以定义方法。上面的语法就定义了一个名为 Person 的结构体,其包含四个字段:Name、Age、Gender 和 Address,这四个字段分别是 string、int、string 和 string 类型。原创 2023-03-16 09:07:50 · 2117 阅读 · 2 评论 -
Go中指针的介绍和使用
背景指针是什么出现的意义是什么呢?假设所有语言中都没有指针, 无论是显式的还是隐式的.那么所有的变量传递都只能通过值Copy的方式了, 如果对象比较大的话, 就会比较浪费空间和性能. 如果还要求对传入的数据进行修改, 还需要将数据返回回去, 就变得比较复杂.指针的出现就完美的解决了这些问题简介Go 是一门支持指针的编程语言,与其他编程语言的指针类似,Go 指针指向的是一个内存地址,可以通过指针间接访问和修改关联的变量。Go 指针还具有许多与其他编程语言不同的特性,下面我们来详细了解一下 Go 指原创 2023-03-15 11:16:00 · 1026 阅读 · 0 评论 -
Go中 channel的使用
Golang 中 channel 的介绍和使用示例原创 2023-03-13 22:04:27 · 555 阅读 · 0 评论 -
Go的 context 包的使用
Go的 context 包的使用原创 2023-03-09 20:34:25 · 851 阅读 · 1 评论 -
Golang 中 sync/atomic 包的原子操作
Golang 中 sync/atomic 包的原子操作原创 2023-03-07 21:52:23 · 657 阅读 · 0 评论 -
Go中sync 包的 Once 使用
Go中sync 包的 Once 使用原创 2023-03-03 21:09:31 · 936 阅读 · 1 评论 -
Go中sync 包的 Cond 使用
Go中sync 包的 Cond 使用方法和场景示例原创 2023-03-02 21:37:46 · 493 阅读 · 0 评论 -
GO中sync 包的 RWMutex 读写互斥锁
GO中sync 包的 RWMutex 读写互斥锁原创 2023-02-28 20:57:41 · 713 阅读 · 0 评论 -
Go的sync包中 Mutex 使用
Go的sync包中 Mutex 使用原创 2023-02-24 21:42:44 · 208 阅读 · 0 评论 -
Go的数组和切片
相同和差异数组和切片都是集合类型,都是可以用来存储某一类数据结构但是数组的长度是固定的,切片的长度是可变的。切片属于引用数据类型, 数组属于值类型。关系探讨切片可以看作是对数组的又一次封装,在切片的底层数据结构还是数组,切片就可以看作是是对数组内某个连续片段的引用。len和cap函数对数组和切片的结果也不同。在数组中, 数组的长度len等于数组的容量cap。切片的长度则表示对底层数组的引用的连续片段的长度,容量则是底层数组的容量。看一下通过通过make声明数组的结果func main()原创 2022-05-08 19:24:34 · 514 阅读 · 0 评论 -
Go 中goroutine和WaitGroup的使用
介绍goroutine 是Go中一个轻量级的线程, 只需要一个go关键字就可以创建一个goroutineWaitGroup则是用于多个goroutine 协作的时候使用, 可以指定多个goroutine 一起完成指定动作之后执行对应的逻辑。例如:100M赛跑,要等所有的运动员都就位,才能发令开始, 这个类似于Java中的countDownlatch例子package mainimport ( "fmt" "math/rand" "strconv" "sync" "time")f原创 2022-05-01 20:45:51 · 956 阅读 · 0 评论 -
GO语言环境安装(windows)
文章目录下载安装包安装安装包配置环境变量测试下载安装包访问: https://golang.google.cn/dl/下载下图的安装包安装安装包允许下载的安装包配置安装目录确定安装UAC允许完成配置环境变量新版本的经过测试慧自己添加环境变量, 如果没生效可以检查一下环境变量编辑系统环境变量的 Path添加刚刚安装目录下的 bin测试cmd 窗...原创 2019-06-27 22:59:18 · 196 阅读 · 0 评论 -
Go 语言环境安装(Linux)
安装GO语言环境syncd和docker和K8S一样是基于GO语言开发,但是syncd还没有安装包,只能通过编译的方式来安装.安装包下载地址:https://golang.google.cn/dl/执行命令下载,在网页可以右键复制链接获得下载路径[root@VM_121_116_centos ~]# wget https://dl.google.com/go...原创 2019-04-06 11:34:09 · 408 阅读 · 0 评论