Go RPC 初探
RPC 技术分享 RPC 介绍 远程过程调用(Remote Procedure Call 缩写 RPC)是一个计算机通信协议,通俗来讲就是调用远程服务上的一个函数,在调用时将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端,客户端调用 server 端提供的接口就像是调用本地的函数一样。 RPC 的消息可以通过 TCP、UDP 或者 HTTP 等传输。 ...
RPC 技术分享 RPC 介绍 远程过程调用(Remote Procedure Call 缩写 RPC)是一个计算机通信协议,通俗来讲就是调用远程服务上的一个函数,在调用时将对象名、函数名、参数等传递给远程服务器,服务器将处理结果返回给客户端,客户端调用 server 端提供的接口就像是调用本地的函数一样。 RPC 的消息可以通过 TCP、UDP 或者 HTTP 等传输。 ...
如何控制 Prometheus 保留多少历史记录? Prometheus 将时间序列及其样本存储在磁盘上。鉴于磁盘空间是一种有限资源,我们希望对 Prometheus 使用的磁盘空间进行一些限制。在以前的版本中,使用 --storage.tsdb.retention 参数即可完成配置。这个参数指定 Prometheus 将保持可用的时间范围。这是最低要求,因此如果其中一些仍在保留窗口内,它将保留整个块。如果您知道每秒样本的摄取率,那么您可以将其乘以每个样本的字节数(1.5ish,为了安全起见为 2)和保留时间,以了解将使用多少磁盘空间。 ...
准备工作 安装 delve 项目代码 1 2 git clone git@git.baijiashilian.com:web/demo/go-debug-demo.git git clone git@git.baijiashilian.com:web/gotools/gitlab-tools.git 调试工具 delve delve 安装 https://github.com/go-delve/delve/tree/master/Documentation/installation 1 go install github.com/go-delve/delve/cmd/dlv@latest dlv 配置 1 ~/.dlv/config.yml 调试方式 本地调试 从源码开始编译并开始调试 1 dlv debug [package] [flags] 调试已经编译好的二进制文件 1 dlv exec ./hello -- args1 args2 编译的时候需要禁用编译器优化:go build -gcflags="-N -l" 编译选项有哪些:go tool compile -h 调试正在运行的进程 1 dlv attach pid [executable] [flags] 调试单元测试 1 dlv test [package] [flags] 远程调试 JSON-RPC & DAP 1 dlv --headless --listen 0.0.0.0:2345 <command> <target> <args> 兼容dlv connect、VS Code Go、GoLand ...
在 Alertmanager 中有三个跟周期相关的参数,分别是 group_wait, group_interval, repeat_interval。合理地配置参数,有利于降低告警频率,避免告警风暴产生。 在深入了解这三个参数之前,首先需要关注到 Prometheus 中也有两个周期函数,scrape_interval 与 evaluation_interval。 ...
Prometheus 除了提供时序数据库和监控系统存在,其本身也对外提供了 Web 服务,用于提供报表展示及表达式计算,以及用于更新配置文件等功能的 API。 处于安全考虑,在对外的 Web 服务里,我们需要增加身份认证。Prometheus 提供 Basic Auth 身份认证。 ...
概念 Kubernetes 中,Pod 内部进程想要访问 API Server,就需要用到 ServiceAccount。ServiceAccount 类似业务系统里的账户,用于为 Pod 提供身份。 ...
背景 PaperMod 主题默认使用的是 highlight.js, 这是一种由 js 生成的高亮方案。相比 highlight.js, Hugo 官方更倾向使用 Chroma 来生成代码高亮。 Chroma 是由 Go 写的语法高亮工具,其编译速度更快,且 Hugo 内置了 Chroma 工具。Hugo 关于 Chroma 的文档在 Syntax Highlighting ...
背景 在收集服务端聊天消息日志时,用到了 Filebeat dissect 语法,而这个语法是 Filebeat 6.4 及之后的版本支持。服务端部分机器的 Filebeat 版本为 6.3 考虑到日志收集工作的普遍性,为了保持版本统一减少运维成本,特增加一种基于 Docker 实现的通用 Filebeat 日志收集方案。 ...
二分查找的通用模型与常见错误 在算法面试中,二分查找(Binary Search) 是一个非常重要的知识点。许多人在实际应用时会遇到边界处理的问题,导致程序出现 bug。本文将总结二分查找的通用模型,并分析常见错误。 ...