
Golang
3333333_
大部分都是记录云笔记,有时候复制过来就挺乱的,而且可能复制1年或者几个月前记录的。随缘吧。
展开
-
位运算学习
除以2其实就是右移1位。乘以2其实就是左移1位。原创 2023-08-23 17:17:45 · 96 阅读 · 0 评论 -
linux通过lsof判断文件是否正在被读
但是不能看到vim /opt/chaosblade/logs/1.txt 这个进程。linux通过lsof判断文件是否正在被读被写。原创 2023-04-26 21:51:23 · 371 阅读 · 0 评论 -
linux升级golang版本 go升级
1、这里下载的版本是1.16.5, cd /root 后执行 wget https://studygolang.com/dl/golang/go1.16.5.linux-amd64.tar.gz。4、将解压的文件夹go移动到usr/local目录下,如果移动不能覆盖内容,那么直接删除掉usr/local/go目录,再进行移动。一般为usr/local/go。2、解压tar -xzvf go1.16.5.linux-amd64.tar.gz到当前目录。原创 2023-04-24 14:36:59 · 1533 阅读 · 0 评论 -
filestash初识
然后就查阅了相关信息,在git上找到,可以通过在docker容器 里面编译。将上面docker启动后里面的静态文件拷贝出来。只要public目录。后来研究了下,docker里面只是编译好的文件。拷贝到main.go添加行指定的目录下面。自己本地装好像只支持docker。然后就可以本地启动了。原创 2023-02-13 22:55:32 · 178 阅读 · 0 评论 -
juicefs源码1
因此,你会发现在对象存储平台的文件浏览器中找不到存入 JuiceFS 的源文件,存储桶中只有一个 chunks 目录和一堆数字编号的目录和文件。不要惊慌,这正是 JuiceFS 高性能运作的秘诀!从命名规则里面也能看出,数据是支持按partition进行分区存储的,也就是说最终存储数据的bucket可以是多个,这样有助于提高并发能力,特别是AWS S3每个bucket是有TPS性能上限的。补充一下源码中,每个blocks的命名规则定义,也就是最终存储在对象存储系统中的对象key名称。原创 2023-02-12 22:06:53 · 274 阅读 · 0 评论 -
juicefs debug ls看源码
-------------------juicefs pkg/meta/redis.go结束----------------------------------------juicefs fuse.go开始----------------------------------------go-fuse库开始----------------------------------------go-fuse库结束--------------------juicefs代码(fuse.go)::ReleaseDir。原创 2023-02-12 22:05:12 · 216 阅读 · 0 评论 -
juicefs debug echo看源码
创建完inode继续执行juicefs代码(base.go)::Create->fh = v.newFileHandle(inode, attr.Length, flags)创建完元数据后继续执行juicefs代码(base.go)::Create->m.of.Open(*inode, attr)juicefs代码(base.go)::Create->v.UpdateLength(inode, attr)juicefs代码(base.go)::Create->m.of.Open(*inode, attr)原创 2023-02-12 22:02:42 · 228 阅读 · 0 评论 -
juicefs debug mount启动看源码
------------------------------------NewReloadableStorage结束--------------------------------------------------------------------------接续进入mount.go------------------------------------这里是S3,其实会调用 pkg/object/s3.go里面的newS3,创建s3client。通过多个init()函数首先注册各种元数据组件。原创 2023-02-12 21:59:36 · 226 阅读 · 0 评论 -
goofys源码
goofys原创 2023-02-12 21:49:08 · 76 阅读 · 0 评论 -
goofys debug ls看源码
fuse库(file_system.go)::GetInodeAttributesOp (这一步,在终端ls显示了结果)fuse库(file_system.go)::ReadDir (是 ReadDirOp)fuse库(file_system.go)::ReleaseDirHandlerOp。fuse库(file_system.go)::ReadO(得到对应的fuse操作)fuse库(file_system.go)::ReadDirOp (第二次)goofys代码(goofys.go)::ReadDir。原创 2023-02-12 21:48:25 · 152 阅读 · 0 评论 -
goofys debug echo看源码
存储 goofys原创 2023-02-12 21:46:11 · 92 阅读 · 0 评论 -
minio 兼容postman
如果是postman传过去heder里面会有Postman-Token这个key。这样在开启browser功能时,不会认为postman请求是browser请求。这样就兼容了postman代替mc发送请求。原创 2023-02-11 16:41:46 · 779 阅读 · 0 评论 -
minio ListObjectVersions调研
【代码】minio ListObjectVersions调研。原创 2023-02-11 16:40:16 · 261 阅读 · 0 评论 -
Minio fsv1调研
最终调fs-v1.go中的GetObjectInfo()->getObjectInfo(ctx, bucket, object, pReader, opts)->fsMeta.ReadFrom(ctx, rlk.LockedFile)->fsMeta.ToObjectInfo(bucket, object, fi)创建对象会调用minio的api-router.go中的 PutObject [api.PutObjectHandler]endpoint只有一个就直接使用disk。原创 2023-02-11 16:35:56 · 417 阅读 · 0 评论 -
minio admin 接口 postman 测试
MinIO原创 2023-02-11 16:29:45 · 898 阅读 · 0 评论 -
MinIO判断请求来源
MinIO原创 2023-02-11 16:29:13 · 105 阅读 · 0 评论 -
Minio解密逻辑
MinIO 存储原创 2023-02-11 16:25:40 · 236 阅读 · 0 评论 -
minio源码追踪
minio原创 2023-02-10 22:13:21 · 209 阅读 · 0 评论 -
自制文件系统
测试跑起来之后,如果没有任何异常,helloworld就是作为一个守护进程,卡主执行,没有任何日志。这个时候,我们这个终端窗口就不要动了(待会可以看日志),再新开一个终端用来测试。true ,这样用户发送的请求对应了后端什么逻辑就一目了然了;2 下载 Go 的 FUSE 库:bazil/fuse。1 创建 go-hello-fs项目。在Linux上创建一个空目录。原创 2023-02-09 13:08:52 · 126 阅读 · 0 评论 -
PowerProto gRPC工具链的一键的一键安装与版本控制
protoc的下载源是Github,PowerProto在下载protoc时尊重 HTTP_PROXY、HTTPS_PROXY环境变量,如果遇到网络问题,请自行配置代理。默认会使用 用户目录/.powerproto作为安装目录,用于放置下载好的各种插件以及全局配置,可以通过 POWERPROTO_HOME环境变量来修改安装目录。在查询protoc的版本列表时,会对github.com使用git ls-remote,如果遇到网络问题,请自行为git配置代理。实现protoc的一键安装与多版本管理。原创 2023-02-05 22:52:04 · 258 阅读 · 0 评论 -
gRPC快速入门
package main import ( "context" "fmt" pb "gRPC_demo/helloworld/pb" "google.golang.org/grpc" ) func main() { // 连接服务器 conn, err := grpc.Dial(":8972", grpc.WithInsecure()) if err!原创 2023-02-04 21:11:28 · 169 阅读 · 0 评论 -
grpc demo
1、项目根目录命令行执行。3、进入GOPATH目录。原创 2023-02-04 21:09:44 · 81 阅读 · 0 评论 -
protobuf grpc php golang 通信
安装用于生成gRPC服务代码的协议编译器,最简单的方法是从下面的链接:https://github.com/google/protobuf/releases下载适合你平台的预编译好的二进制文件(protoc--.zip)。执行 protoc -I ../gorpcdemo ../gorpcdemo/pb/helloworld.proto --go_out=plugins=grpc:../gorpcdemo。新建 helloworld.proto 复制前面.proto的内容。没问题 接着就弄PHP了。原创 2023-02-04 21:09:18 · 312 阅读 · 0 评论 -
tikvgrpcserver
proto文件内容如下。原创 2023-02-04 21:04:14 · 86 阅读 · 0 评论 -
golang 批量插入elasticsearch
golang elasticsearch原创 2023-01-29 22:50:16 · 1213 阅读 · 0 评论