目前很多公司的服务架构都采用了mesh作为服务治理,那么就会引入一个问题,就需要所有的流量都多经历一跳,大部分为了优化性能都会采用UDS作为通信,那么如何抓取uds数据包呢?tcpdump没办法使用,专业点就是使用 bcc ,但是依赖太重了,所以采用 strace 抓取系统调用, 进行实现抓包,就可以完美解决了!
C++20协程原理和Asio的使用介绍
协程和异步的关系是什么?C++20协程的原理是什么?如何使用Asio开发高性能网络框架!
召回率和精确率
召回率和精确率是一些文档中常用的词语,怎么理解了?本文会简单、明了的介绍一下!
使用PEG实现一个高性能的过滤器
说实话大家如果开发过一些研发工具的话或多或少会遇到定制过滤器(Filter)的能力,主要场景比如动态的匹配一些流量,动态匹配一些规则等,为此通常平台方会简单提供一些过滤能力比如仅支持and
操作,不支持复杂的逻辑判断,或者引入lua
、 python
、JavaScript
这种动态语言来解决此问题,但是这些性能都很差,为此可以自己实现一个过滤表达式,性能也可以做到最优解!
HTTPS抓包的原理和实现
C++模版
C++模板是一种强大的工具,主要被用于实现泛型编程。泛型编程允许你编写能够处理任何类型的代码,同时保持类型安全和性能。
C++ 继承的底层设计与原理
C++ 作为面向对象语言,其次面向对象语言的重要特性封装、继承、多态,所以理解继承底层设计对于我们学习C++是非常重要的,其次他是C++的灵魂所在,本人也是走了些弯路所以打算深度学习一下!
如何调试 envoy
envoy 是目前高性能数据平面的基本标准了,虽然有些看着笨重,但是社区牛逼,其次性能也很高,目前大部分公司的mesh基本都是通过envoy构建的,所以学习是很重要的,本人主要是介绍如何debug envoy,本人也是踩坑了大半天!
多进程 - daemon进程和优雅重启
本文会详细介绍主流的daemon进程的实现方案,以及网络编程中如何实现优雅重启,这些都是多进程的一些编程技巧!
Cgo学习
Cgo 的诞生是为了继承C/C++积累了半个世纪的软件财富,这样的话我们可以方便的在Go项目中使用这些财富!具体信息可以看官方文档 ,本文会介绍如何使用Cgo,如何将C++项目集成到Go中,有兴趣可以直接看我自己用Cgo写的一个项目,成熟度还可以: https://github.com/anthony-dong/protobuf