使用Rust与ClickHouse构建高效可靠的日志系统
第三届中国Rust开发者大会 使用Rust与ClickHouse构建高 效可靠的日志系统 刘炜 腾讯云(专有云) • 自我介绍 • 系统介绍 • 整体架构 • 系统实现 • 遇到问题 大纲 自我介绍 • 大龄码农 • 做过嵌入式/CDN/数据库开发 • 从C/C++到Rust • 现在在腾讯云(专有云)从事日志系统的开发 自我介绍 PhoTto / image / chart 系统介绍 系统介绍 • 属于腾讯专有云PaaS平台(TCS) • 承接TCS底座日志 • 从Loki=>Menicus • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 每天 100G • 磁盘 • 压缩比 1:13 • 内存 • Mencius • 200M左右 • ClickHouse • 2G以下 • 接入端 • API Gateway • 日志服务(Mencius) • 存储(ClickHouse) 整体架构 • 协议层 • 处理层 • 计算层 • 存储层 系统实现 协议层 • 支持协议 • Loki • 写入 • Json/ProtoBuf0 码力 | 19 页 | 2.66 MB | 1 年前3Comprehensive Rust(简体中文) 202412
146 26.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 26.2 文件系统层级结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 26.3 可见性 . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 33.2 Rust 库 . . . . . . . 202 35.2 模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 36 日志记录 205 37 互操作性 207 37.1 与 C 的互操作性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3Rust 程序设计语言简体中文版
关键字将路径引入作用域 ............................................................................. 155 7.5. 将模块拆分成多个文件 ................................................................................................. 163 ...................................................................................... 273 12.2. 读取文件 .................................................................................................. .................................................................. 362 14.4. 使用 cargo install 安装二进制文件 ........................................................................... 368 14.5. Cargo 自定义扩展命令0 码力 | 600 页 | 12.99 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 7.5. 将模块拆分成多个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 12.2. 读取文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 14.4. 使用 cargo install 安装二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3170 码力 | 562 页 | 3.23 MB | 9 天前3Rust分布式账务系统 - 胡宇
可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的0 码力 | 27 页 | 12.60 MB | 1 年前3Rust 语言学习笔记
.......................................... 11 1.2.2 引用外部文件模块 ................................................................ 11 1.2.3 多文件模块的层级关系 .................................................. 的事情。 rust 的包管理系统和 go 的包管理系统以及 java 的包管理系统大大不同,很容 易给人造成困惑。 最主要原因是: 1.Rust 的模块支持层级结构,但这种层级结构本身与文件系统目录的层级结构 是解耦的。 因为 Rust 本身可用于操作系统的开发。 开发者需要自己去定义路径,定义 mod 的层级关系,配合 rust 的默认约定。这 点和 java,go 开发完全不同,在面向 so)或二进制可执行文件。crate 分为两种: lib crate 和 bin crate。 2. 一个包可以带有零个或一个 lib crate 和任意多个 bin crate。一个包中必 须有 crate,至少一个,(lib crate 或 bin crate 都可以) 3.通常写 rust 项目时非常依赖 crate,很多重要的信息都是配置在 cargo.toml 文件中,不仅仅包括 lib0 码力 | 117 页 | 2.24 MB | 1 年前3Rust 在算法交易中的实际应用与积极效应
涵盖异常的事前、事中、事后的全方位监控 基于 Rust 异步编程框架开发,风控逻辑可插拔,兼顾部署灵活性与执行性能 风控服务端和桌面客户端 Rust 全栈应用实践 - 桌面客户端、风控 高性能异步日志库 ftlog Rust 全栈应用实践 - 开源 1. 特性丰富实用: 时间切分 受限写入 异步写入 按业务多目标写入 .... 2. 性能优秀0 码力 | 18 页 | 3.49 MB | 1 年前3Comprehensive Rust(繁体中文)
80 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.3 Option . . . . Duration 標準函式庫 3 minutes 說明文件測試 5 minutes Option 10 minutes Result 10 minutes String 10 minutes Vec 10 minutes HashMap 10 minutes 練習:計數器 20 minutes 請針對這節的每張投影片,花點時間帶學員詳讀說明文件頁面,並向他們強調一些較常見的方法。 16.1 標準函式庫 system. • alloc 包括需要全域堆積配置器的型別,例如 Vec、Box 和 Arc。 • 嵌入式 Rust 應用程式通常只使用 core,偶爾會使用 alloc。 16.2 說明文件測試 Rust 說明文件的主題涵蓋甚廣,包括: • All of the details about loops. • 基本型別,例如 u8。 80 • Standard library types like0 码力 | 358 页 | 1.41 MB | 10 月前3Comprehensive Rust(繁体中文) 202406
78 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.3 Option . . . . Duration 標準函式庫 3 minutes 說明文件測試 5 minutes Option 10 minutes Result 10 minutes String 10 minutes Vec 10 minutes HashMap 10 minutes 練習:計數器 20 minutes 請針對這節的每張投影片,花點時間帶學員詳讀說明文件頁面,並向他們強調一些較常見的方法。 16.1 標準函式庫 system. • alloc 包括需要全域堆積配置器的型別,例如 Vec、Box 和 Arc。 • 嵌入式 Rust 應用程式通常只使用 core,偶爾會使用 alloc。 16.2 說明文件測試 Rust 說明文件的主題涵蓋甚廣,包括: • All of the details about loops. • 基本型別,例如 u8。 78 • Standard library types like0 码力 | 356 页 | 1.41 MB | 1 年前3KCL: Rust 在编译器领域的实践与探索
前端解析器性能提升 20倍 中端语义分析器性能提升40倍 稳定性和性能的巨大提升 50 % 语言编译器编译过程平均内存使用 量变为原来 Python 版本的一半 01 02 03 04 Case1: 单文件编译 > https://github.com/KusionStack/kcl#showcase Case2: Konfig模型 + 用户定义 > https://github.com/Kus 400 单文件 用户定义 + Konfig (120+) Python Rust 1 50 1.31 55 0 10 20 30 40 50 60 单文件 用户定义 + Konfig (120+) Python Rust 390 840 414 350 0 100 200 300 400 500 600 700 800 900 单文件 用户定义 IDE 友好的编译器架构 1. 错误恢复: 不完整代码的编译 • 代码补全 • 错误代码的语义分析 2. 增量编译 • 大规模场景下的编译优化和 IDE 性能提升 • 编译粒度: 项目 -> 文件 -> 函数/定义 3. 结构化语义模型(Structured Semantic Model) • Using the tree as a store for semantic info is convenient0 码力 | 25 页 | 3.50 MB | 1 年前3
共 22 条
- 1
- 2
- 3