随笔分类 -  golang

摘要:最近搞了一个prometheus 指标终端展示工具,有兴趣的可以试试: 阅读全文
posted @ 2024-06-29 01:00 charlieroro 阅读(65) 评论(0) 推荐(0) 编辑
摘要:限速器 限速模拟器 限速器类型 Leaky Bucket:漏桶算法(和令牌桶(token bucket)非常相似)是一种非常简单,使用队列来进行限流的算法。当接收到一个请求时,会将其追加到队列的末尾,系统会按照先进先出的顺序处理请求,一旦队列满,则会丢弃额外的请求。队列中的请求数目受限于队列的大小。 阅读全文
posted @ 2023-12-27 23:36 charlieroro 阅读(345) 评论(0) 推荐(1) 编辑
摘要:目录简介运行制作vm文件系统制作vm基础文件系统文件创建contianerdClient创建cniInstance拉取基础镜像创建基础文件系统文件制作vm内核文件Create vm配置vm对象创建vm文件系统配置sshStart vmfirecracker start vm解析配置启动vm配置容器网 阅读全文
posted @ 2023-08-16 09:33 charlieroro 阅读(431) 评论(0) 推荐(0) 编辑
摘要:使用hashicorp Raft开发高可用服务 目录使用hashicorp Raft开发高可用服务Raft概述术语Raft机制简介接口和原理描述Raft节点的初始化Raft节点的创建监控Leader变化实现FSMFSM的备份和恢复何时备份和恢复备份的时机恢复的时机备份和恢复的内部逻辑备份恢复Raft 阅读全文
posted @ 2023-06-16 22:44 charlieroro 阅读(1527) 评论(0) 推荐(1) 编辑
摘要:译自:Designing for Concurrency: the Hilbert’s Hotel Problem in Go,本文使用go的并发性来解决Hilbert酒店问题。本文比较有意思的是它对问题的描述很吸引人,在看完文字描述之后,代码实现逻辑也基本顺理成章,当然代码本身的实现也相当优雅。 阅读全文
posted @ 2023-03-16 09:20 charlieroro 阅读(311) 评论(0) 推荐(2) 编辑
摘要:## golang使用JWX进行认证和加密 ![image](https://img2023.cnblogs.com/blog/1334952/202307/1334952-20230719094038816-1830029005.png) 最近看了一个名为[go-auth](https://git 阅读全文
posted @ 2023-02-22 08:29 charlieroro 阅读(928) 评论(0) 推荐(0) 编辑
摘要:重定向Kubernetes pod中的tcpdump输出 最新发现一个比较有意思的库ksniff,它是一个kubectl 插件,使用tcpdump来远程捕获Kubernetes集群中的pod流量并保存到文件或输出到wireshark中,方便网络问题定位。使用方式如下: kubectl sniff h 阅读全文
posted @ 2023-02-11 23:09 charlieroro 阅读(479) 评论(0) 推荐(1) 编辑
摘要:通过memberlist库实现gossip管理集群以及集群数据交互 概述 memberlist库的简单用法如下,注意下面使用for循环来执行list.Join,原因是一开始各节点都没有runing,直接执行Join会出现连接拒绝的错误。 package main import ( "fmt" "gi 阅读全文
posted @ 2022-07-12 09:04 charlieroro 阅读(1872) 评论(0) 推荐(1) 编辑
摘要:4 回归 之前有转载过一篇文章:容量推荐引擎:基于吞吐量和利用率的预测缩放,里面用到了基本的线性回归来预测容器的资源利用情况。后面打算学一下相关的知识,译自:Machine Learning With Go 我们将探究的第一组机器学习技术通常被称为回归(regression),我们可以将回归理解为一 阅读全文
posted @ 2022-06-01 23:40 charlieroro 阅读(1205) 评论(0) 推荐(0) 编辑
摘要:分析fastcache和freecache(一) fastcache和freecache是两个比较简单的缓存实现,下面分析一下各自的实现,并学习一下其实现中比较好的方式。 fastcache 概述 fastcache是一个简单库,核心文件也就两个:fastcache.go和bigcache.go。其 阅读全文
posted @ 2022-04-30 01:01 charlieroro 阅读(455) 评论(0) 推荐(0) 编辑
摘要:victoriaMetrics中的一些Sao操作 目录victoriaMetrics中的一些Sao操作快速获取当前时间计算结构体的哈希值将字符串添加到已有的[]byte中将int64的数组转换为byte数组并发访问的sync.WaitGroup定时器池访问限速优先级控制 快速获取当前时间 victo 阅读全文
posted @ 2022-04-29 14:34 charlieroro 阅读(591) 评论(0) 推荐(0) 编辑
摘要:golang bufio 目录golang bufio使用bufio进行写缓存中满数据缓存中仍有空间待写入的数据大于缓存的大小缓存重用获取缓存的可用空间数使用bufio进行读PeekReadReadSliceReadLineReadBytesScanner附并发复用缓存限制从io.Reader中读取 阅读全文
posted @ 2022-04-21 01:22 charlieroro 阅读(1645) 评论(0) 推荐(0) 编辑
摘要:目录前置要求使用方式使用funcs查找支持的函数使用break(b)打断点使用breakpoints查看当前活动的断点。使用clear清除断点使用goroutines查看所有协程使用stack(bt)查看goroutine的栈信息使用attach连接到正在运行的进程Tipsgoland远程调试 前置 阅读全文
posted @ 2022-01-07 20:10 charlieroro 阅读(688) 评论(0) 推荐(0) 编辑
摘要:分析一个简单的goroutine资源池 tunny。 从资源池中获取goroutine并进行处理的逻辑如下: tunny将goroutine处理单元封装为workWrapper,由此可以对goroutine的数目进行限制。 **workerWrapper.run()**作为一个goroutine,内 阅读全文
posted @ 2021-12-27 12:20 charlieroro 阅读(333) 评论(0) 推荐(0) 编辑
摘要:golang []byte和string的高性能转换 在fasthttp的最佳实践中有这么一句话: Avoid conversion between []byte and string, since this may result in memory allocation+copy. Fasthtt 阅读全文
posted @ 2021-10-15 14:29 charlieroro 阅读(1849) 评论(0) 推荐(1) 编辑
摘要:golang 版本:1.12.9 简单的HTTP服务器代码: package main import ( "net/http" ) type TestHandler struct { str string } func (th *TestHandler)ServeHTTP(w http.Respon 阅读全文
posted @ 2019-12-10 15:01 charlieroro 阅读(3628) 评论(0) 推荐(0) 编辑
摘要:golang版本1.12.9;操作系统:readhat 7.4 golang的底层使用epoll来实现IO复用。netPoll通过pollDesc结构体将文件描述符与底层进行了绑定。netpoll实现了用户层面的与底层网络IO相关的goroutine的阻塞/非阻塞管理。 对netpoll的介绍按照这 阅读全文
posted @ 2019-09-20 00:14 charlieroro 阅读(7679) 评论(1) 推荐(2) 编辑
摘要:关于golang http transport的讲解,网上有很多文章进行了解读,但都比较粗,很多代码实现并没有讲清楚。故给出更加详细的实现说明。整体看下来细节实现层面还是比较难懂的。 本次使用golang版本1.12.9 transport实现了RoundTripper接口,该接口只有一个方法Rou 阅读全文
posted @ 2019-08-29 18:04 charlieroro 阅读(22906) 评论(2) 推荐(0) 编辑
摘要:client-go中有很多比较有意思的实现,如定时器,同步机制等,可以作为移植使用。下面就遇到的一些技术讲解,首先看第一个: sets.String(k8s.io/apimachinery/pkg/util/sets/string.go) 实现了对golang map的key的处理,如计算交集,并集 阅读全文
posted @ 2019-07-07 18:29 charlieroro 阅读(4374) 评论(0) 推荐(0) 编辑
摘要:最近在看client-go源码,在源码的\tools\caches\store.go文件中有一行代码不得其解(如下标黄内容),它将一个struct赋值给了一个interface google搜索后没有得到结果,在stackoverflow上提交了一个问题golang syntax in client 阅读全文
posted @ 2019-06-14 15:52 charlieroro 阅读(1749) 评论(0) 推荐(0) 编辑