Go开发者必知:五大缓存策略详解与选型指南

本文永久链接 – https://tonybai.com/2025/04/28/five-cache-strategies 大家好,我是Tony Bai。 在构建高性能、高可用的后端服务时,缓存几乎是绕不开的话题。无论是为了加速数据访问,还是为了减轻数据库等主数据源的压力,缓存都扮演着至关重要的角色。对于我们 Go 开发者来说,选择并正确地实施缓存策略,是提升应用性能的关键技能之一。 ...

April 28, 2025 · 8 min · Tony Bai

探索基于pion开发的WebRTC应用的建连过程

本文永久链接 – https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion 在《WebRTC第一课:从信令、ICE到NAT穿透的连接建立全流程》一文中,我们从理论层面全面细致地了解了WebRTC连接建立的完整流程。这个流程大致可以分为以下几个阶段: 与信令服务器的交互 ICE候选项的采集、交换与排序 形成ICE候选检查表、进行连通性检查,并最终确定最优候选路径 这个过程的复杂性不言而喻。即便多次阅读全文,读者可能仍难以形成深入的理解。因此,如果能够配上一个真实的示例,相信会更有助于读者全面把握这一过程的细节和原理。 ...

December 26, 2024 · 13 min · Tony Bai

WebRTC第一课:从信令、ICE到NAT穿透的连接建立全流程

本文永久链接 – https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课:网络架构与NAT工作原理》中,我们介绍了WebRTC的网络架构和NAT的基本概念,学习了WebRTC采用端对端(P2P)的通信模型,知道了NAT(网络地址转换)的概念以及给像WebRTC这样的直接P2P通信带来的挑战。 在实际的网络环境中,建立WebRTC这样的端到端连接的确并非易事。因此,在这篇文章中,我将继续上一篇文章的内容,全面探讨一下WebRTC连接建立的全流程,涵盖信令交换、ICE候选信息采集和选择、NAT穿透的各个关键步骤,希望能给大家理解WebRTC技术栈带去帮助。 ...

December 14, 2024 · 21 min · Tony Bai

有效表达软件架构的最小图集

本文永久链接 – https://tonybai.com/2023/12/06/a-minimum-set-of-diagrams-for-expressing-software-architecture 无论你是专职的软件架构师,还是在团队内兼职充当软件架构师角色的开发人员,一旦你处在软件架构师这个位置上,你自然就会遇到软件架构设计的三个困惑: ...

December 6, 2023 · 20 min · Tony Bai

通过实例理解Web应用授权的几种方式

本文永久链接 – https://tonybai.com/2023/11/04/understand-go-web-authz-by-example 在前面的系列文章中,我们了解了Go Web应用身份认证的几种方式,也知道了该如何相对安全地存储用户的密码信息,最大程度减小在系统数据库被攻破时用户密码信息的泄露程度。 一旦用户通过身份验证,他/她就可以以合法的身份进入到系统中,那么问题来了:用户进入系统后是否就可以“为所欲为”了呢?显然不是! 比如我们以普通用户身份登录github,身份验证成功后,我们只能增删改自己账号下的代码仓库数据或读取其他用户的公开仓库(public)数据,我们无法修改和删除其他用户下面的仓库数据,甚至看不到其他用户的私有仓库。Web应用系统(比如github)的这种对用户可以使用什么功能、可以访问和修改哪些数据的管理和控制,就是授权(Authorization),简称为AuthZ。 ...

November 4, 2023 · 31 min · Tony Bai