摘要: 我用几个例子一步一步拆解一些常用的写法和指标。 例子一 这里我有一个需求是计算我的程序,每处理 1Gb 数据需要使用多少 CPU 时间。 (increase(container_cpu_usage_seconds_total{cluster="$cluster", namespace="$names 阅读全文
posted @ 2023-11-15 14:54 piperck 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 平时在使用 kubernets 的时候我们会使用滚动更新策略,滚动更新确保了我们新的 pod 实例逐步替换旧的 pod 实例从而确保重启期间服务不会中断。 举个例子: 有一个 gateway 程序一直在接受客户端请求,这时我们需要升级 gateway 的程序。在更新代码之后我们需要对 gateway 阅读全文
posted @ 2023-08-14 16:20 piperck 阅读(114) 评论(0) 推荐(0) 编辑
摘要: Rust 中使用 std::result::Result 表示可能出错的操作,成功的时候是 Ok(T),而出错的时候则是 Err(E): pub enum Result<T, E> { Ok(T), Err(E), } 通常情况下,E 是实现 std::error::Error 的错误类型: pub 阅读全文
posted @ 2023-08-14 13:19 piperck 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 首先如果你使用的 macos,那么要做的第一件事情是找个 linux 的机器,要么服务器,要么搞个 docker 用。不要用 macos 进行下面的操作,因为会有各种各样难以 debug 的问题。 1. 下面先说下代码部分的一些改动。首先我们需要确保 Rust 程序设置一些 Debug 模式,可以让 阅读全文
posted @ 2023-07-12 01:22 piperck 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 我们想要了解我们程序在运行时候的真实情况,但是感觉 rust 性能方面的调试真的比 go 麻烦非常多。 首先在 rust cargo.toml 中添加 [profile.release] debug = true Profiling CPU 直接在 pod 里面进行调试限制比较多,首先我们可能需要安 阅读全文
posted @ 2023-07-07 18:25 piperck 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 在高并发 (40k~60k) rps 的情况下,github.com/segmentio/kafka-go v0.4.39 该库频繁出现 panic: runtime error: slice bounds out of range [:4636] with capacity 4096 gorout 阅读全文
posted @ 2023-06-30 17:40 piperck 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 新做的 Gateway 程序打算使用一个 maxmind 第三方库来解析地理信息,想了一下比较简单找了一个库直接使用。 项目跑了一天得到了一堆 panic,程序崩溃超过 1s 丢了不少数据。 从 stack 信息可以看到调用 amxminddb-golang 这个库的 readLeft 出现了错误, 阅读全文
posted @ 2023-04-26 12:02 piperck 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 搜了一些文章来看 实在是没有重点,自己归纳一下。 其实直接看文档已经比较清楚但是文档部分似乎没有一些介绍如何看火焰图之类的细节,这里一并归纳总结一下。 收集性能数据 在看数据之前首先要收集数据,我们需要在需要测试性能的代码中插入 pprof 库和启动一个 http server。 这个 server 阅读全文
posted @ 2023-03-22 20:19 piperck 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 背景 在一次调用三方API的时候,为了数据安全和三方API的请求和返回信息都用了rsa加密,由于rsa算法生成的内容是二进制的,所以需要用base64编码将二进制数据转化成64个可打印字符进行通信或者存储。在获取到三方的base64编码的返回信息后,解码碰到了各种问题,如下是日志里打印的三方的一个b 阅读全文
posted @ 2023-03-08 16:46 piperck 阅读(2243) 评论(1) 推荐(0) 编辑
摘要: 安装 去官网下载安装包,然后编译安装。 https://thrift.apache.org/download ./configure && make 当然如果我们使用了 MacOS 我们将可以方便的直接使用 Homebrew 进行安装 brew install thrift 编写一个 thrift 阅读全文
posted @ 2023-02-20 15:35 piperck 阅读(46) 评论(0) 推荐(0) 编辑