2024年2月22日

摘要: 使用 cmux 或 smux 对 TCP 连接进行复用 只写一下如何使用,不对实现进行大量描述,两个库的代码都比较精炼,花一会看一下就行。 cmux 对端口进行复用,单端口可以建立不同协议的连接(本质都是 TCP),如 TCP/TLS/HTTP/gRPC 或自定义协议 smux 对TCP连接复用,单 阅读全文
posted @ 2024-02-22 18:10 文一路挖坑侠 阅读(386) 评论(0) 推荐(1) 编辑

2024年2月21日

摘要: 如何在 libevent 中读取超过 4096 字节的数据 bufferevent 是 libevent 中相对高层的封装,较 event 使用起来方便很多。 之前有一个需求,需要从服务端读取数据进行操作,为了防止数据过大,在 bufferevent 的 read_callback 中循环调用 bu 阅读全文
posted @ 2024-02-21 18:31 文一路挖坑侠 阅读(333) 评论(0) 推荐(3) 编辑

2024年2月7日

摘要: 如何基于 spdlog 在编译期提供类 logrus 的日志接口 实现见 Github,代码简单,只有一个头文件。 前提 几年前看到戈君在知乎上的一篇文章,关于打印日志的一些经验总结; 实践下来很受用,在 golang 里结构化日志和 logrus 非常契合,最常见的使用方式如下。 logrus.W 阅读全文
posted @ 2024-02-07 16:23 文一路挖坑侠 阅读(212) 评论(0) 推荐(1) 编辑

2024年1月23日

摘要: 2023 的一些技术总结 今年主要发力的两个板块 对网络的探索 对业务代码优化的思考 对网络的探索 整个过程围绕着一个主题 “如何在一个机器内构建一个虚拟 VXLAN/VLAN 网络”。 netns netns 是其中最关键的技术,使用非常简单,主要用来解决隔离问题 VXLAN 的不同 VNI 的相 阅读全文
posted @ 2024-01-23 23:24 文一路挖坑侠 阅读(557) 评论(0) 推荐(5) 编辑

2022年3月26日

摘要: 重构代码的一些想法 最近需要新写一个业务模块,这个业务模块和两年前自己写的一个业务功能高度类似,就想着能不能拿过来改改就行。这个业务模块使用 golang 实现的,是我写的第一个 golang 代码。 以上为背景,但是代码拿过来后发现通用性太差,虽然业务有相似的地方,但是小改达不到自己的期望,于是做 阅读全文
posted @ 2022-03-26 21:59 文一路挖坑侠 阅读(103) 评论(0) 推荐(0) 编辑

2021年6月28日

摘要: Cow简单的源码分析 Cow 是一个写时复制功能的智能指针,在数据需要修改或者所有权发生变化时使用,多用于读多写少的场景。 pub enum Cow<'a, B: ?Sized + 'a> where B: ToOwned, { /// Borrowed data. Borrowed(&'a B), 阅读全文
posted @ 2021-06-28 19:06 文一路挖坑侠 阅读(1244) 评论(0) 推荐(1) 编辑

2021年6月9日

摘要: rust learning day 1 (2021/05/27) 学了常量,变量,数据类型,控制流,所有权 char 的宽度是4字节,一个 unicode 的宽度 控制流条件都不要括号 rust 中的元组使用和 c++ 中的非常相似// clang++ test.cpp -std=c++11 && 阅读全文
posted @ 2021-06-09 16:54 文一路挖坑侠 阅读(464) 评论(0) 推荐(1) 编辑

2021年5月23日

摘要: 对 wrk 扩展以支持 tcp 字节流协议压测 高性能、方便使用的 HTTP(s) 的流量压测工具,结合了多个开源项目开发而成: redis 的 ae 事件框架 luajit openssl http-parser 减少造轮子、复用他人的成功项目,赞👍;我们定制化也走这条路线,代码见此。 要支持 阅读全文
posted @ 2021-05-23 15:26 文一路挖坑侠 阅读(851) 评论(0) 推荐(0) 编辑

2020年11月3日

摘要: 一次 KVM 虚拟机磁盘占满的排查过程 KVM 虚拟机系统为 CentOS,文件系统为 XFS。 现象如下: 使用 df -h 命令发现磁盘剩余空间为30k(总大小为30G),使用 df -i 发现 inode 可用数量为 800(总数为18w,正常状态为1000w+) 虚拟机为初始状态时,磁盘空间 阅读全文
posted @ 2020-11-03 17:53 文一路挖坑侠 阅读(1804) 评论(0) 推荐(0) 编辑

2020年10月18日

摘要: nginx 内存池 ngx_pool_t nginx 是自己实现了内存池的,所以在nginx ngx_pool_t 这个结构也随处可见,这里主要分析一下内存池的分配逻辑。 内存池实现了包括小块内存、大块内存和清理资源几种资源的处理,应该来说覆盖了绝大数的使用场景了。 相关结构定义 // 大块内存 t 阅读全文
posted @ 2020-10-18 23:37 文一路挖坑侠 阅读(650) 评论(0) 推荐(0) 编辑

导航