基于jwt(认证)和casbin(鉴权)。生成jwt部分参考jwt的介绍[https://www.cnblogs.com/zly-go/p/15532783.html]以及直...
基于jwt(认证)和casbin(鉴权)。生成jwt部分参考jwt的介绍[https://www.cnblogs.com/zly-go/p/15532783.html]以及直...
本文介绍protobuf种对消息的编码和分帧手段,主要参考:这篇文章[https://zhuanlan.zhihu.com/p/645555627]gRPC与云原生应用开发 ...
System Design Interview 先建立框架再逐步细化的方式翻译 从零到百万用户量 设计一个百万级用户的系统是有挑战的,并且这是个需要持续的精炼和无尽的改善的过...
参考: https://zhuanlan.zhihu.com/p/38034590[https://zhuanlan.zhihu.com/p/38034590]平移 旋转 翻...
关于epoll/io多路复用的解析是经典八股文,网上很多讲解,这里不做赘述。 本文基于go1.17,是对go语言网络模型netpoller的学习笔记,只涉及unix下的epo...
手写跳表,有点丑陋,亟待优化,不过是一遍过。先纪念下
本文是对go语言defer实现原理的解析,基于go1.17。 简单的demo代码,myFunc中进行一次defer调用 使用GOOS=linux go build -gcfl...
使用dlv找到程序入口 跳转到这 复制下启动参数 大部分初始化操作都在rt0_go函数中 ...省略一些看不懂的代码 启动的代码整体参考下图 全部展开代码太多了逻辑很复杂, ...
要求实现一个 map(1) 面向高并发;(2) 只存在插入和查询操作 o(1);(3)查询时,若 key 存在,直接返回 val; 若 key 不存在,阻塞直到 key va...
整体来说比较正常,就是保存三个状态 计数值 // add到了多少 waiter数量 // 有多少调用了Wait方法 seme // 用来阻塞的信号量,挂载等待的协程只是为...
一般来说原子的改变一个标志位就可以了。比如使用cas操作原子改变,但是这里如果f的执行时间比较长则可能会出现问题 源码中特意说明了不能使用这种方式,原因是在并发情况下竞争失败...
读多写少的场景下,大量读锁也需要进行锁竞争,比较浪费。读写锁的实现是为了解决读者写者问题go的实现方式是写优先,可能存在读(锁)协程饥饿问题和Mutex一样 ,1 不能重复...