ITPub博客

首页 > 数据库 > 数据库开发技术 > 【Rust日报】2024-01-01 使用 Rust 构建生产级微服务

【Rust日报】2024-01-01 使用 Rust 构建生产级微服务

原创 数据库开发技术 作者:Rust语言中文社区 时间:2024-01-02 23:38:09 0 删除 编辑

使用 Rust 构建生产级微服务

这个由sanyi编写的博客系列 “在Rust中构建生产就绪微服务” 涵盖了Rust中构建生产就绪微服务的过程。以下是每篇博客的主要主题总结:
  1. 设置工作空间:
  • 为Rust应用程序设置多包工作空间。
  • 添加CLI子命令:
    • 实现一种简单的模式,以向应用程序添加多个CLI子命令。
  • 配置:
    • 从文件或环境变量中加载配置。
  • Web服务器:
    • 基于Axum启动异步Web服务器。
  • 应用程序状态:
    • 向Rust应用程序添加共享状态。
  • 连接到数据库:
    • 使用sqlx和SeaORM连接到PostgreSQL数据库。
  • 基本CRUD操作:
    • 使用SeaORM实现基本的CRUD操作。
  • 身份验证和授权:
    • 实现简单的登录端点和基于JWT的身份验证和授权。
  • JWT授权中间件:
    • 添加JWT令牌验证和简单的错误处理方法。
  • 改进错误处理:
    • 改进错误处理,在JSON解析错误时返回JSON响应。
  • OpenTelemetry:
    • 使用OpenTelemetry将追踪数据转发到SigNoz。
    该系列覆盖了从项目设置到数据库集成、身份验证、授权、错误处理和跟踪等一系列主题。每篇博客都提供实际见解和实际示例,指导在Rust中构建生产就绪微服务。
    原文链接 https://apatisandor.hu/tags/dog-shelter/

    Arc<str>和 String 性能对比

    本文讨论了 Arc 和String之间的性能差异,以及在多线程情况下,为什么有时候String的性能可能超过Arc。
    实验结果表明,在单线程情况下,Arc的克隆性能通常优于String。然而,在多线程情况下,Arc的性能可能受到原子引用计数的争用的影响,从而导致性能下降,而String则通过Jemalloc的线程本地内存池避免了这种问题。文章还通过strace命令和内存映射的分析,说明了在不释放String的情况下,Jemalloc可能会导致性能下降,因为它需要频繁地调用mmap系统调用。
    总的来说,文章建议在大多数情况下,克隆Arc通常比String更快。但在高度争用的多线程情况下,由于原子引用计数的锁争用,性能可能下降。因此,作者建议在面临性能瓶颈时,不仅仅盲目地优化克隆操作,而是应该仔细测量和评估不同的优化策略。
    原文链接 https://blocklisted.github.io/blog/arc_str_vs_string_is_it_really_faster/

    通过Rust AWS SDK 探索API 设计

    本文介绍了AWS SDK for Rust的设计概述和实际使用指南。主要内容包括SDK结构、配置和认证、三种SDK配置方法、使用AWS服务的基本步骤、Fallible操作和模块、方法命名和返回类型、异步操作和Builder模式的代价、Blob和Bytestream类型、Rust类型系统的有趣方面以及总结展望。
    原文链接 https://sanjeevi.hashnode.dev/exploring-the-aws-sdk-for-rust-design-overview-and-practical-usage-guide
    --
    From 日报小组 BobQ, FBI小白
    社区学习交流平台订阅:
    • Rustcc论坛: 支持rss
    • 微信公众号:Rust语言中文社区

    原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论

    注册时间:2020-06-11

    • 博文量
      1769
    • 访问量
      718551