- 博客(42)
- 收藏
- 关注
原创 ECONNREFUSED ::1:8000 前端代理问题
本地转发请求到 http://localhost:8000,而后端只监听ipv4的请求,转发到localhost,macos解析为ipv6的::1,导致代理连接失败。
2025-12-24 14:30:51
175
原创 go的基础数据结构 slice源码阅读
这是一个由 internal/runtime/sys.NotInHeap 内存支持的切片,与普通的 slice 结构体不同,notInHeapSlice 的底层数组指向的是非堆内存区域。内存管理器的内部数据结构:如 mbitmap.go、mpagealloc_*.go、mheap.go 等;运行时系统的底层组件:如内存分配器、垃圾收集器等;避免垃圾收集器的干扰:这些内存区域不需要被 GC 管理。避免写屏障:指向非堆内存的指针可以省略写屏障,提高性能。内存管理控制:运行时可以完全控制这些内存的分配和释放。
2025-09-25 09:43:17
240
原创 Go的schedt调度(runtime/proc.go)
在本地p队列为空,随机获取其他p的g(最大偷取数量为目标p队列长度的一半),持有目标p的runq.lock;在本地队列p为空且定时器堆也为空,则获取其他p的定时器来获取关联g,持有目标p的mu。执行到本函数时,前提是上一步骤本地队列为空的情况下,将从全局队列中取g,g的数量为给定的n(输入为本地队列长度的一半),全局队列长度,全局队列长度/最大设置p数量 + 1的最小值。每个p都有独属于自己的定时器和定时器队列,结构体如下,会维护以g的过期时间作为值维护的最小堆,保证最早到期的g优先处理。
2025-09-16 09:23:15
1085
原创 Go1.25 中sudog结构体作用
在 Go 运行时中,semaRoot 树是一种“二叉淘汰赛”(tournament tree)结构,用于在信号量或其他同步原语(如 sync.Mutex、sync.Cond)中,对等待队列里的 sudog(代表 goroutine)做公平、有序的唤醒选择。每当缓冲区已满,再次写入 和 缓冲区已空,再次读取 都会使G陷入阻塞状态,而其中每个G可能会在多个channel的等待队列当中,G和channel是一种多对多的关系。底层会调用gopark函数来释放当前阻塞G持有的P,M。2.2 sema Root树。
2025-08-14 10:02:11
612
原创 Go1.25 unsafe包解析
unsafe.Pointer:通用指针类型,用于转换不同类型的指针,不能进行指针运算,不能读取内存存储的值(必须转换到某一类型的普通指针)unsafe.Pointer 是桥梁,可以让任意类型的指针实现相互转换,也可以将任意类型的指针转换为 uintptr 进行指针运算。
2025-08-12 18:56:00
321
原创 MYSQL 使用xorm出现 err:Error 1054: Unknown column ‘user_id‘ in ‘field list‘
1.数据库sql2.后端服务结构体。
2025-08-04 11:18:00
161
原创 评论区实现 前端Vue
根据后端部分定义,重点需要实现三个部分,1.当前用户发起新根评论请求;2.评论区展示部分;3.某一根评论的子评论展示以及回复组件显示。
2025-07-06 15:58:57
624
原创 本地环境下 前端突然端口占用问题 针对vscode
本地运行前端代码,虚拟机中使用nginx反向代理。两者都使用vscode进行开发。后端使用vscode远程连接。在前端发起一次接口请求后,后端会产生新的监听端口,出现如下图的提示情况。随后前端刷新,甚至无法正常显示界面。
2025-05-25 04:27:37
509
原创 雪花算法生成int64,在前端js的精度问题
后端对视频生成唯一性id,在发送评论阶段,由于后端接收的json数据格式,设置videoId为int64。前端于是使用js的Number函数,进行字符串转换为数字,由于不清楚js的精度范围,产生了携带的videoId变化的问题。
2025-04-24 21:24:07
417
原创 go-zero解决部分CROS问题 方案
总结-使用CORS解决跨域问题那这些响应头都具体是神马作用呢?下面会结合demo来了解各参数的配置作用,并给出结果图。- 掘金。
2025-03-31 16:17:41
455
原创 go-zero: sqlx 对timestamp 格式数据问题
对于goctl自动生成的model代码文件,对于非null的时间数据列,一定会产生如下问题例如以上的问题,不论是插入还是删除部分。由于本人暂时无法解决根本上的问题,于是采取以下方法。
2025-03-26 17:06:37
595
原创 go-zero Bookstore样例实践
在这里把后续实现的rpc服务进行注册,便于后续api调用。注意编写的proto文件 需要和调用的api数据类型一致。在rpc/model目录下,创建book.sql文件,通过etcd自动发现rpc服务。剩下的只需要修改logic部分。对于非格式化的文件还可以通过。
2025-03-11 20:27:21
41
原创 vue3 遇到babel问题(exports is not defined) 解决方案
由于我在引用ant-design-vue插件,于是产生了下图的问题。
2025-03-08 20:27:31
789
原创 vue3 使用easyPlayer 遇到 Cannot read properties of undefined (reading ‘_c‘) 解决方案
的方法,是会在使用的组件中导入easyPlayer。在vue3中,由于我们已经全局导入了,所以不需要这一步,不然也会报上述错误信息。将下图中的红框部分复制粘贴到public部分。并且在index.html 中 ,全局导入。
2025-03-05 21:55:53
775
原创 百度面试手撕 & go context channel部分学习
var (startLoc = int64(0) // --- 未处理切片数据起始位置endLoc = int64(0) // --- 切片数据右边界 避免越界offset = int64(0) // --- 根据切片和协程数量 在主线程 动态设置target = 42 // --- 设置的目标值mu sync.Mutex // --- 避免并发冲突使用的全局锁。
2024-12-19 22:32:11
1315
原创 Vue 使用el-input实现密码隐藏显示功能
官网很明确的给出了两种方法,使用prefix 和 slot。以下仅对prefix方式进行实现。有佬有直接使用input封装的 也让我学习学习。
2024-12-10 15:48:33
1102
原创 ubuntu20.04 docker 配置单点redis 设置为开机自启&对外开放连接
由于etcd部分启动设置在ubuntu上,决定redis也实例化在ubuntu的docker上。
2024-12-03 11:47:44
341
原创 docker 拉取镜像失败
然后,执行以下命令。重启docker服务:sudo systemctl daemon-reload && sudo systemctl restart docker。
2024-12-03 11:20:07
224
原创 Radix Tree学习记录
假设当前已插入10001111 val为10, 10000000 01110100 val为11,会产生分裂,父节点只保留公共前缀,同时父节点的val也可能会发生变动。假设当前已插入10001111 val为10, 10000000 01110100 val为11,已知是图2情况。根据父子节点直接的bitLen,清除无效比特位后,合并成完整字节,删除子节点。设置左右子树的依据是,分裂的初始位bit为1则为右边子树,0则为左子树。执行过程中,不断更新子节点为当前节点,直到存在插入条件。则使用递归进行解决。
2024-11-25 17:39:04
426
原创 CRDT-YATA算法 未完成
规则一:禁止互相冲突的操作之间有交叉连接的原点。允许的两种Case分别是:插入操作在其它操作和它的原始操作之间;一个操作的原点是另一个操作的后续。规则三:当两个冲突的插入操作具有相同Origin时,用户ID小的操作在左侧。此规则参照了OT算法。规则二:当指定O1<O2时,不会存在另外一个操作比O2大同时比O1小。
2024-11-19 11:22:56
192
原创 超卖问题 学习记录 go实现
对于高并发环境下,超卖问题一直是非常常见的问题,对于有限的库存和突发的高请求下,避免产生超卖是重中之重。主要是一直看面试题,结果面试当场,脑袋忘记了,于是亲自动手简单做一遍,避免下次发生。方法1:使用MySQL悲观锁,实现约束,update操作,在MySQL默认事务隔离下,是会加上X锁进行写限制的。方法2:MySQL的乐观锁实现,常见的有依靠版本号或时间戳方法3:使用lua脚本, 在redis中实现原子操作。redis中也支持简单事务,但是看网上说不推荐使用。整体代码依照包区分开来。
2024-11-07 22:20:11
421
原创 SQL学习记录,单纯记录学习问题
遇到的问题是 left join 会返回全部左集,右侧如果不符合会置NULL处理,导致返回结果包含错误。1.查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(难)
2024-11-01 15:36:18
232
原创 gin 脚手架 gin_scaffold 学习记录
windows环境下 go 1.21 swag 1.16.3 出现 docs\docs.go:171:25: undefined: swag.Spec。
2024-10-02 16:45:36
355
原创 vue脚手架初始化项目
然后一路默认no, 回车 就可以创建一个初始的vue前端项目。主要是为了生成node_modules文件里面的内容。然后输入 npm run dev 即可运行代码。然后再项目目录下输入以下命令。
2024-09-17 19:53:39
390
原创 windows的nodejs版本控制工具:nvm nodejs以及vue的安装
首先确保自己的电脑是首次安装nodejs相关的软件,安装nvm之前必须确保电脑无nodejs。
2024-07-25 14:01:34
1130
原创 ubuntu16.04简单使用nginx
成功结果如下所示,默认的以及创建的example.com例子。清除 DNS 缓存以确保更改立即生效。创建网站的根目录,并添加一个测试的。重新加载 Nginx 以应用新的配置。然后就可以在虚拟机的浏览器进行访问。结果如下,显示HTTP 200 OK。目录中,并通过符号链接存放在。Nginx 的主配置文件位于。如下所示则是配置无问题。进入无痕模式进行访问。
2024-07-24 13:17:42
559
原创 etcd两种本地集群简单部署方式
在当前随机目录创建文件Procfile,其他文件名应该也可。测试集群是否没问题可以按照官网的流程进行尝试。检查goreman是否安装成功。
2024-07-23 16:52:40
552
原创 vscode 远程连接 ubuntu16.04 以及 Centos7
由于vscode自从1.85.2之后就有部分服务器的remote-ssh服务不兼容,所以我建议将vscode回退到1.85.2(都是有佬告诉我的,整篇几乎都是)如果版本回退到1.85.2之后,还是无法连接,可以查看错误,可能是windows主机的用户权限问题,至少我的是这样子的,具体操作差不多如下所示。然后,输入更新(update),在如下图红框部分选择none,禁止vscode版本更新。第一次连接需要选择操作系统Linux,macos,windows,随后输入密码就可以建立连接。
2024-07-07 16:51:26
1256
原创 Ubuntu(16.04) 无法与windows主机进行CV操作 安装docker,拉取kafka,简单的kafka使用指令
第一种解决方案就是在安装VMware设置自动安装vm-tools第二种是将vm-tools删除,然后重新进行安装,执行下面三条指令即可亲测有效。
2024-07-05 13:35:45
1046
原创 Centos7安装yum
在查阅了部分网上资料,发现网易centos镜像出现500error,清华镜像也出现错误。由于我太懒了,不打算在官网查找文件aliyun镜像网站也存在比较完整的文件,在进行yum安装。在打算配置docker时,因为更新yum包没有备份,导致虚拟机上yum包删除后,无法使用yum进行下载。然后输入yum -version,就可以看到已经安装成功。
2024-07-02 14:33:27
2079
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1