后端
文章平均质量分 94
泰山毒霸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
读懂 Pin,一次搞清 Rust 最难的指针
本文介绍了Rust中的Pin指针及其相关概念。Pin是一种智能指针包装器,用于固定内存地址,防止特定类型被移动。Unpin是标记trait,表示类型可以安全移动,而!Unpin类型需要Pin保护。Pin主要作用于栈上对象地址,确保内部引用安全。文章通过示例展示了Pin的API使用,包括Pin<Box<T>>、自引用结构和Future中的应用。Pin对!Unpin类型才真正有效,而Copy或Unpin类型即使被Pin也能移动。Pin在异步编程中保护自引用结构不被移动,确保Future执原创 2025-11-09 20:46:13 · 693 阅读 · 0 评论 -
[特殊字符] 从崩溃到稳定:我踩过的 Rust Tokio 线程池坑(含代码示例)
摘要: 本文深入探讨Rust中Tokio线程池的使用陷阱与解决方案。对比了标准库线程、Rayon、Tokio Runtime等不同线程池方案的优缺点及适用场景(CPU密集/IO密集)。重点分析了Tokio使用时的6个关键问题:避免阻塞操作、正确取消任务、合理配置线程池、处理panic传播等,并通过代码示例展示最佳实践。例如使用spawn_blocking处理阻塞任务,设置超时防止资源耗尽等。为Rust异步编程提供了实用的性能优化指南。(148字)原创 2025-11-05 22:42:40 · 895 阅读 · 0 评论 -
十分钟掌握 Rust json 序列化工具
本文介绍了Rust中使用serde_json库进行JSON序列化和反序列化的核心知识。主要内容包括:1)基础API使用,如结构体序列化和动态JSON访问;2)常用特性,包括可选字段设置、字段重命名;3)自定义序列化逻辑的实现方法。该库提供了高性能且类型安全的JSON处理能力,适用于web/移动开发中的常见场景。通过derive宏和灵活配置,能够高效处理各种JSON格式转换需求,同时支持文件读写等实用功能。原创 2025-10-30 16:59:08 · 598 阅读 · 0 评论 -
掌握 anyhow,让你的 Rust 错误处理优雅又安全
摘要:Rust错误处理库anyhow的核心应用 anyhow是针对Rust应用层错误处理的轻量级库,解决了标准库错误处理的痛点:泛型爆炸和缺乏上下文追踪。其核心特性包括: 统一错误类型:通过Box<dyn Error>动态分发,避免定义复杂枚举 上下文增强:提供context()/with_context()方法,支持错误链追踪 便捷宏:anyhow!、bail!、ensure!简化错误创建和条件校验 异步友好:满足Send+Sync+'static约束,兼容tokio运行时 panic捕获:可原创 2025-10-26 16:04:37 · 1079 阅读 · 0 评论 -
Rust Web 初学者必看:用一个宏搞定错误处理和统一返回
Rust过程宏简化Axum响应处理 本文介绍如何通过自定义过程宏简化Axum框架中的JSON响应处理,减少重复代码。主要内容: 项目结构采用Rust workspace组织,分离宏定义和业务逻辑 定义attribute宏json_response,自动封装函数返回值为Axum响应 宏实现解析函数AST,生成包含JSON包装和错误处理的代码 实际应用示例展示宏如何简化路由处理函数的编写 关键点: 使用syn解析源码,quote生成代码 宏自动添加JSON响应封装 workspace组织使宏和业务代码分离 相比原创 2025-10-19 16:47:28 · 647 阅读 · 0 评论 -
Rust 多线程编程入门:从 thread::spawn 步进入 Rust 并发世界
Rust 多线程编程入门:从 thread::spawn 步进入 Rust 并发世界这是Rust九九八十一难的第六篇。本篇聊下Rust的多线程。为了提高性能,多线程几乎在每种语言中都有应用。多线程思想是一致的,但是Rust有独特的所有权设计,还是有需要注意的地方。原创 2025-10-12 21:42:23 · 1007 阅读 · 0 评论 -
四种方式配置你的nginx跳转
前言最近工作用到了nginx,但是路由配置特殊,业务场景复杂,因此整理了集中nginx跳转的配置方式,如servername的正则,location的匹配顺序,rewrite和proxy的示例,相信总有一种满足你的需求。一、配置server对应的域名server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。server_name匹配规则:后面可以跟多个域名,第1个是主域名1.1、精确匹配如下nginx配置原创 2021-08-29 17:10:04 · 6896 阅读 · 0 评论 -
docker部署filebeat
一、背景最近公司用到了filebeat,所以学习了下这个技术。filebeat是一个轻量级的日志采集工具,使用golang语言开发,可以将日志转发到es,kafka等。官方对filebeat提供了最全面的支持。filebeat的性能非常好,部署简单,是一个非常理想的文件采集工具。相比logstash它的内存占用更少,filebeat开发的目的也是为了替换logstash。当然也有缺点,比如filebeat官方提供的功能比较单一,往往无法满足我们的需求,我们经常把日志采集到kafka,然后借助flink等工原创 2021-08-17 22:18:20 · 1568 阅读 · 0 评论
分享