自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 Mac/Linux 下使用 vscode 调试 redis 源码(超方便)

主要介绍如何使用 VSCode 与 GDB/LLDB 调试 Redis 源代码的方法,可以作为配置 redis 调试环境的参考。

2023-08-15 10:39:24 293 1

原创 从 net 标准库源码探索 go 网络编程高效的秘密

go 对网络编程有着高度封装,利用了 epoll 和 goroutine 结合的方式,使其有这非常不俗的性能,go 的 http 和 rpc 标准库也都依赖这一套网络编程模型,可能这也是 go 比较适合网络编程方面的原因之一。

2023-06-16 11:41:16 205 1

原创 举一反三!解读 etcd watch 源码实现

客户端发送 Watch 请求,与服务端建立 gRPC 双向流。客户端阻塞等待 Watch 的响应结果。服务端收到请求后开启一个 recv loop 和一个 send loop,分别用来读取客户端请求和发送相应。服务端创建 watcher 并加入到 mvcc 存储的 watchers 集合中管理。其它操作(如 Put)完成后将 key 上发生事件通知到对应的watcher。服务端的 send loop 将响应结果发送给客户端。客户端对结果进行业务逻辑处理。

2023-04-30 15:05:52 463 1

原创 从源码实现了解 etcd 事务

以一个最简单的示例了解事务的源码实现,在客户端的处理中,会将用户不同分支的输入生成为对应分支的的操作类型,然后跟其它请求一样,向服务端发送一个 gRPC 请求,同样的,服务端收到请求后会发送 raft 请求给到其它节点,最后调用 mvcc 存储来处理事务。

2023-04-22 03:41:34 242 1

原创 学习 etcd 存储的第一步,从 Put 操作源码说起

在这篇文章中,讲述了一个最简单的 Put 请求最基本的处理流程,这个流程同时也是 etcd 其它操作的基础。在 etcdctl 的处理中,会把用户的命令转成客户端的方法,随后客户端向 etcd 服务端发送一个 gRPC 请求。服务端实现了对应的 gRPC 服务提供给客户端,服务的启动包含了 raft 节点通信和客户端通信的 http 服务,服务本身即为一个 raft 节点,启动时等待其它节点发来的同步消息。将键值对以 log entry 的形式发送给 raft 集群中其它节点(包括自身),等待节点处理。

2023-04-21 23:21:21 351 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除