四月__
码龄8年
关注
提问 私信
  • 博客:21,063
    21,063
    总访问量
  • 42
    原创
  • 140,996
    排名
  • 171
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-06-26
博客简介:

qq_35429326的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    439
    当月
    2
个人成就
  • 获得226次点赞
  • 内容获得17次评论
  • 获得240次收藏
  • 代码片获得708次分享
创作历程
  • 19篇
    2024年
  • 23篇
    2023年
成就勋章
兴趣领域 设置
  • 后端
    phpsqlgolang爬虫gin
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

354人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

文件描述符(File Descriptor)简介

实际应用过程中,如果出现“Too many open files” , 可以通过增大进程可用的文件描述符数量来解决,但往往故事不会这样结束,很多时候,并不是因为进程可用的文件描述符过少,而是因为程序bug,打开了大量的文件连接(web连接也会占用文件描述符)而没有释放。Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I/O操作的系统调用都会通过文件描述符。
原创
发布博客 2024.05.17 ·
845 阅读 ·
11 点赞 ·
0 评论 ·
19 收藏

Docker alpine linux 修改时区

如果是在 dockerfile 中。
原创
发布博客 2024.05.14 ·
1297 阅读 ·
6 点赞 ·
3 评论 ·
9 收藏

Golang线上内存||cup过高问题排查(pprof)

profile: CPU profile. You can specify the duration in the seconds GET parameter. After you get the profile file, use the go tool pprof command to investigate the profile.【默认进行30s的CPU Profing,用于观察CPU使用情况】需要注意的是,对于profile而言,总是需要采样一段时间,才可以看到数据。
原创
发布博客 2024.05.06 ·
1360 阅读 ·
22 点赞 ·
0 评论 ·
11 收藏

Linux ssh免密登录配置

私钥文件(id_rsa)将被保存在 /home/ 目录下,公钥文件则会自动生成在同一目录下,并将其扩展名改为 .pub。生成的密钥对可用于 SSH 远程登录和身份验证。-f /home/id_rsa1: 用于指定要生成的密钥文件的路径和名称。在这个命令中,我们将生成的私钥文件命名为 /home/id_rsa1。配置成功,到目标服务器的 /root/.ssh/authorized_keys 文件可以查看到公钥信息。将公钥存放到目标服务器的这个的 /root/.ssh/authorized_keys 文件中。
原创
发布博客 2024.03.30 ·
798 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

Docker 安装 Nginx 容器,反向代理

当服务器和容器都不存在 nginx.conf 文件时, 执行启动命令的时候 docker会将nginx.conf 作为目录创建 , 这并不是我们想要的结果。之所以要先创建 , 是因为Nginx本身容器只存在/etc/nginx 目录 , 本身就不创建 nginx.conf 文件。/home/nginx/conf/conf.d 下面创建新文件或者在原来文件基础上编辑,xxx-gateway.conf。启动前需要先创建Nginx外部挂载的配置文件( /home/nginx/conf/nginx.conf)
原创
发布博客 2024.03.21 ·
1643 阅读 ·
5 点赞 ·
1 评论 ·
13 收藏

DockerFile遇到的坑

当您在运行 docker run 命令时提供了额外的命令,Docker 不会执行 Dockerfile 中的 CMD 指令,而是执行您提供的命令。(会执行CMD)执行docker run -d imageName,会直接结束,通过docker ps -a 查看CMD是已经执行了。(会执行CMD)执行docker run imageName,再启动新终端执行docker exec -it查看CMD命令执行结构。dockerfile 中的 CMD 命令在docker run -it 不会执行 CMD 命令。
原创
发布博客 2024.03.18 ·
708 阅读 ·
9 点赞 ·
0 评论 ·
8 收藏

golang 注释插件

自动生成golang注释,该插件为 Intellij/Goland 中的 golang 提供自动生成注释。Select "Tools - Goanno Setting"(工具->Goanno Setting)Edit comment template(编辑模板)Edit template(编辑模板)模板支持的变量,请参考GitHub。2、 搜索 Goanno,安装。简单安装 Goanno 插件。
原创
发布博客 2024.03.05 ·
955 阅读 ·
12 点赞 ·
2 评论 ·
12 收藏

k8s-项目测试环境部署

将nginx、mysql、redis、es等部署到k8s之外,用作线上独立环境(至于你想把某些中间件部署到k8s内部这个自行处理,本次重点是如何将go-zero开发的微服务部署到k8s集群内部),这里我就直接使用项目下的docker-compose-env.yaml了,把所有依赖的第三方中间件环境直接安装在。2、另外一个就是我们的服务发现,线上我们部署在k8s中,go-zero直接支持k8s服务发现,所以不需要etcd等,我们在配置zrpc client的时候,要改成target,k8s的配置方式。
原创
发布博客 2024.02.29 ·
1309 阅读 ·
25 点赞 ·
0 评论 ·
15 收藏

centos7.9 搭建k8s

K3s 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 或 openrc 的系统上。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。kubeconfig 文件将写入到 /etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件。将安装其他实用程序,包括 kubectl、crictl、ctr、k3s-killall.sh 和 k3s-uninstall.sh。
原创
发布博客 2024.02.15 ·
1042 阅读 ·
8 点赞 ·
0 评论 ·
7 收藏

Windows搭建docker+k8s

因为开启K8s,主要是启动对应的服务,大概有七八个服务,镜像是很麻烦的,特别是没有配置本地加速的情况下(加速可以用阿里云或者中科大的地址,百度即可)。所以需要从远程仓库把镜像拉下来,过程很慢,即便我用VPN了,也一个小时未成功,无奈只能重装,换了第二种方案。开启 Kubernetes,并等待 Kubernetes 开始运行。有一点需要注意就是要看好对应的版本,因为后边涉及到版本的问题。从官网下载,然后直接安装即可,过程很简单,一直Next就行。中间的打马赛克的默认也是没有的,这是我已经安装好的。
原创
发布博客 2024.02.13 ·
2253 阅读 ·
27 点赞 ·
1 评论 ·
28 收藏

go基础-垃圾回收+混合写屏障GC全分析

Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可并发运行,但需要一定时间的**STW(stop the world)**,STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。,结合了删除写屏障和插入写屏障的优点,只需要在开始时并发扫描各个goroutine的栈,使其变黑并一直保持,这个过程不需要STW,而标记结束后,因为栈在扫描后始终是黑色的,也无需再进行re-scan操作了,减少了STW的时间。
原创
发布博客 2024.01.29 ·
1471 阅读 ·
18 点赞 ·
0 评论 ·
24 收藏

go-zero集成asynq

scheduler:looklook/app/mqueue/cmd/scheduler目录,定时生成任务。server:looklook/app/mqueue/cmd/job目录,消费任务。client:looklook/app/order/rpc目录,业务生成任务。参考looklook/app/mqueue/cmd/scheduler目录。参考looklook/app/mqueue/cmd/job目录。参考looklook/app/order/rpc目录。资源依赖填充(ServiceContext)
原创
发布博客 2024.01.23 ·
522 阅读 ·
7 点赞 ·
0 评论 ·
9 收藏

gitignore中配置了新的规则,如何强制生效?

在 Git 中,.gitignore 文件用于指定哪些文件或目录不应该被 Git 跟踪和提交。执行以上命令后,Git 将会重新读取 .gitignore 文件,并根据文件内容更新 Git 缓存。需要注意的是,以上命令会删除 Git 缓存中所有文件和目录,因此在执行前需要确保没有重要的未提交修改。git commit -m "update .gitignore":提交修改,并添加一条提交信息。git rm -r --cached .:删除 Git 缓存中所有文件和目录。
原创
发布博客 2024.01.22 ·
1116 阅读 ·
9 点赞 ·
0 评论 ·
11 收藏

go-zero模板定制化

如果只想维护一份模板,那么我们初始化模板的时候和生成代码的时候都不用指定–home了,默认的模板tpl文件在.goctl里面;一般来说除非是开源的包,我们可以直接指定写,但是有些包是项目内的包,模板直接指定的话换了项目就不行了;开发者可能是想我们做一套好用的模板,但是目前看来开源的模板都没几个;回滚其实就是把你修改的东西不要了,要回初始的;, 默认情况下,模板生成器会选择内存中的模板进行生成,而对于有模板修改需求的开发者来讲,则。在模板中添加文件是不生效的,只能是修改他已有的tpl文件。
原创
发布博客 2024.01.10 ·
730 阅读 ·
9 点赞 ·
1 评论 ·
7 收藏

go-zero错误处理

按照正常情况下,go-zero的rpc服务是基于grpc的,默认返回的错误是grpc的status.Error 没法给我们自定义的错误合并,并且也不适合我们自定义的错误,它的错误码、错误类型都是定义死在grpc包中的,ok ,如果我们在rpc中能用自定义错误返回,然后在拦截器统一返回时候转成grpc的status.Error , 那么我们rpc的err跟api的err是不是可以统一管理我们自己的错误了呢?
原创
发布博客 2024.01.08 ·
1314 阅读 ·
21 点赞 ·
0 评论 ·
20 收藏

go-zero数据库

注意:虽然go-zero的goctl model mysql 指令支持从 sql 文件,数据库连接两个来源生成代码,两者生成的代码是完全一样的。本节使用golang新增的泛型特性,对查询、新增、修改这三种类型的代码进一步优化,从而实现使用同一个接口操作多个数据表的目的。查询数据库有数据,则在Redis缓存中将指定key的数据设置为数据库查到的数据,时长自定义,同时将查询到的结果返回。※默认的缓存接口主要针对的是单条数据,因为设置到Redis里的key只细化到了id,因此针对单条数据的。
原创
发布博客 2024.01.08 ·
628 阅读 ·
8 点赞 ·
0 评论 ·
12 收藏

go-zero开发流程

添加user rpc配置,service/user/api/internal/config/config.go。添加user rpc配置,service/user/api/internal/config/config.go。完善服务依赖,service/user/api/internal/svc/servicecontext.go。添加yaml配置,service/user/api/etc/config.yaml。添加yaml配置,service/user/api/etc/config.yaml。
原创
发布博客 2024.01.06 ·
538 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

docker&docker-compose安装

如果安装了这些较旧版本的 Docker :docker、http://docker.io、docker-engine,通过运行镜像来验证Docker Engine安装是否成功 hello-world。如果不需要保存现有数据,并希望从全新安装开始,可以进行手动删除。通过检查版本来验证 Docker Compose 是否正确安装。您现在已经成功安装并启动了 Docker Engine。以下是ubuntu安装,其他安装请参考官网。以下是ubuntu安装,其他安装请参考官网。安装 Docker 软件包。
原创
发布博客 2024.01.05 ·
464 阅读 ·
8 点赞 ·
0 评论 ·
10 收藏

MySQL-面经

通过辅助索引(辅助索引存放的是指向聚簇索引的ID值),找到聚簇索引的ID值,然后再基于查询到的ID值,再走ID字段的主键索引,最终得到一整条行数据并返回。先记录redo-log日志,标记为prepare状态,提交之后再写bin-log,然后更新redo-log为commit状态。叶节点:不会存储数据,仅存储指向叶子节点的指针,好处让叶节点存储更多元素,确保树的高度不会由于数据增长而变得很高。并非所有的正向范围操作都会走索引,例如IS NULL就不会走,它的反向操作:IS NOT NULL同样不会走。
原创
发布博客 2024.01.02 ·
394 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

MySQL-分库分表&主从

会先写入到主节点中,接着主节点会向所有从节点发送一个写入数据的请求,但半同步模式中无需等待所有从节点全部写入完成后再返回,而是只要有一个从节点写入成功并返回了ACK,则会直接向客户端返回写入成功,这样既能够保证性能,又能够确保数据不丢失。当主节点接收到一个客户端的写请求后,先会往自身写入数据,自身数据写入成功后,就会立马向客户端返回写入成功的信息,对于从节点的数据,会在其他的时间内再异步复制过去。①在主节点宕机或故障的情况下,从节点能自动切换成主节点的身份,从而继续对外提供服务。
原创
发布博客 2023.12.26 ·
94 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多