![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端系列知识讲解
文章平均质量分 81
路多辛
分享编程知识与经验
展开
-
链路追踪详解(六):Zipkin 和 Jaeger 的安装方法
Zipkin 和 Jaeger 是比较受欢迎并且被使用比较多的开源的分布式链路追踪工具,接下来就安装一下 Zipkin 和 Jaeger,以后的链路追踪系列文章也主要以这两个产品来举例。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。原创 2024-07-12 20:58:30 · 428 阅读 · 0 评论 -
OpenResty程序如何连接开启了TLS的Redis?
OpenResty 是一个基于 Nginx 和 Lua 的 Web 应用框架,允许开发者通过 Lua 脚本对 Nginx 的配置和行为进行扩展。当 OpenResty 需要连接到一个开启了 TLS 的 Redis 服务器时,需要确保两个方面:一是 Redis 服务器配置了 TLS,二是 OpenResty 客户端能够使用 TLS 进行连接。原创 2024-07-10 21:41:55 · 575 阅读 · 0 评论 -
软件开发中常用环境你都知道哪些?
在软件开发过程中,不同的环境用于不同的阶段,以确保软件的质量和稳定性。接下来详细介绍一些常用的环境及作用。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。原创 2024-07-02 22:42:05 · 792 阅读 · 0 评论 -
深入解析 gRPC 的重连机制
gRPC 重连机制是指在客户端与服务器之间的连接断开后,客户端自动尝试重新建立连接的过程。gRPC 的重连机制依赖于底层的传输层实现(如HTTP/2)和客户端库的配置。原创 2024-06-30 16:48:55 · 720 阅读 · 1 评论 -
深度解析服务发布策略之A/B测试
A/B测试,也称为拆分测试或桶测试,是一种对比实验方法,核心思想是通过对比两个或多个版本的表现来评估某一变化的效果。一般同时运行两个或多个版本的网页、应用功能或广告等,将目标群体随机分为两组或多组,每组分别体验不同的版本,然后通过统计分析比较各版本的表现数据,以确定哪个版本更符合业务目标。实验组和对照组:实验组是接触新版本的用户群体,对照组是接触旧版本或基准版本的用户群体。独立变量:在实验中被改变的因素,如网页设计、按钮颜色等。依赖变量:实验结果的衡量标准,如点击率、转化率等。原创 2024-06-29 17:47:37 · 565 阅读 · 0 评论 -
链路追踪详解(五):链路传播 Header 详解
链路追踪作为分布式系统中不可或缺的一部分,可以帮助开发和运维人员了解请求在系统中的流转链路,快速定位问题和识别性能瓶颈。而链路传播 Header 是实现跨服务调用链跟踪的关键机制,通过链路传播 Header,使得跟踪信息在不同服务间的透明传递,从而构建出完整的请求链路。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。原创 2024-06-27 22:03:31 · 574 阅读 · 0 评论 -
深度解析服务发布策略之滚动发布
滚动发布,也称为滚动更新或蓝绿部署的一种变体,是一种逐步替换旧版本应用实例的部署策略。核心思想是在不影响现有服务的情况下,逐步将流量从旧版本切入到新版本,直到所有流量都切入到新版本为止。在滚动发布过程中,系统会逐步增加新版本实例的数量,同时减少旧版本实例的数量,直到新版本完全替换旧版本。这种策略能够显著降低更新失败的风险,同时确保服务的高可用性和连续性。原创 2024-06-19 21:49:12 · 824 阅读 · 0 评论 -
软件服务中的 SLA 到底是什么?
SLA 是服务提供商对客户的正式承诺,明确了服务提供商将提供何种级别的服务,旨在确保服务的可用性、响应时间、故障恢复时间等关键指标达到预定的目标。SLA 通常包含多个服务级别目标(Service Level Objectives,简称 SLO),这些目标是具体、可度量的,例如服务的可用性、性能、容量等。SLA 可以应用于各种类型的服务,包括云服务、网络服务、数据中心服务、软件服务等。在软件服务中,SLA可能包括软件的功能、性能、可用性、安全性、支持服务等。原创 2024-06-16 19:14:00 · 707 阅读 · 0 评论 -
深度解析服务发布策略之金丝雀发布
金丝雀发布是通过逐渐将新版本发布到生产环境,而不是一次性全面发布,来降低风险和影响的一种策略。这种策略的名称来源于采矿业中的“金丝雀测试”,金丝雀(一种小型鸟类)被用来检测矿井空气中有害气体的浓度。如果金丝雀出现异常或死亡,说明环境存在危险。在软件领域,金丝雀发布同样扮演着“哨兵”的角色,新版本首先只对一小部分用户(金丝雀用户)进行发布,如果新版本在金丝雀用户中运行良好,没有出现问题,那么就逐渐扩大发布范围,直到所有用户都使用新版本。原创 2024-06-15 20:45:26 · 1003 阅读 · 0 评论 -
深度解析服务发布策略之蓝绿发布
蓝绿发布是通过使用两套完全相同的生产环境来减少系统停机时间和降低风险的一种策略。这两个环境通常被称为"蓝"和"绿",在任意时刻,只有一个环境是活动的。在蓝绿发布中,"蓝"环境通常是当前活动的生产环境,而"绿"环境是准备新版本发布的预生产环境。当新版本在"绿"环境中部署好并经过测试验证通过后,将流量从"蓝"环境切换到"绿"环境。如果在"绿"环境中发现问题,可以快速回滚到"蓝"环境。等绿环境一切功能正常无误后,再将蓝环境升级到新版本。原创 2024-06-14 22:11:35 · 911 阅读 · 0 评论 -
为什么需要分布式 ID?
在现代软件架构中,分布式系统架构变得越来越流行。在这些系统中,由于组件分散在不同的服务器、数据中心甚至不同的地理位置,因此要构建高性能、可扩展的应用系统就需要一种可靠的方式来确保在整个系统中生成的 ID 是唯一的。文章持续更新中,微信搜索【路多辛】阅读更多优质文章。原创 2024-05-27 21:43:06 · 636 阅读 · 0 评论 -
备受 Linux 之父推崇的 dogfooding 产品开发方式详解
Linux 之父 Linus Torvalds 在 Linux 6.10 内核开发阶段的一个关于 DRM 图形驱动程序更新补丁的邮件列表中,称自己是 "dogfooding" 的忠实信徒。那什么是 dogfooding 呢?“dogfooding”(全称为“eating your own dog food”)是软件开发行业中的一个形象而又有趣的术语,直译为“吃狗粮”,实际上指的是公司内部使用自己开发的产品或服务的行为。原创 2024-05-22 22:13:12 · 685 阅读 · 0 评论 -
ChatGPT 对话使用的 EventSource 技术到底是什么?
EventSource 是 HTML5 中引入的一项技术,定义了一种从服务器到客户端的单向数据传输机制。EventSource 的核心思想是实现服务器端主动推送数据到客户端,而无需客户端频繁发起请求。基于 HTTP 长轮询技术,但与传统的轮询相比,具有更高的效率和实时性,因为一旦连接建立,服务器可以连续发送多个事件到客户端,直到连接关闭。原创 2024-05-21 22:06:21 · 941 阅读 · 0 评论 -
Web 应用最安全的会话实现和保持方式是什么?
什么是会话管理?会话管理是一种在无状态的 HTTP 协议上保持用户状态的技术, Web 服务器通过会话管理可以识别和跟踪用户的请求。为什么需要会话管理?由于 HTTP 协议本身不保存状态信息,所以服务器需要一种机制来区分不同用户的请求,以及在多个请求之间保持用户的状态信息。会话创建会话信息应该由服务器端创建,服务器端创建会话 ID 以及会话信息后存储起来,将会话 ID 返回给 Web 客户端存储。会话 ID应 该是随机的、不可预测的,并且有足够的熵。会话 ID 通常是通过安全的随机数生成算法生成。原创 2024-04-21 20:34:36 · 1151 阅读 · 2 评论 -
你真的知道 HTTP OPTIONS 方法的作用吗?
根据 RFC 7231规范定义,HTTP OPTIONS 方法是一个“用于获取针对特定资源的 HTTP 请求方法或 URI 的通信选项”的请求方法。简单来说,当客户端发送一个 OPTIONS 请求到服务器时,是在询问:“对于这个特定的URL,服务器能处理哪些 HTTP 方法或者有哪些特殊的限制或要求”。原创 2024-04-11 22:07:43 · 1695 阅读 · 0 评论 -
简化开发与提升可维护性的编程范式-声明式 API
声明式 API 的核心思想是将“意图”与“执行”分离。开发者通过声明式 API 描述自己想要的结果,而不需要关心实现这一结果的具体步骤。系统根据这些声明自动确定如何执行任务。声明式 API 一般是通过开发者编写描述期望的系统状态的配置文件来与系统交互。这些配置文件通常采用 YAML 或 JSON 格式,明确地列出所需资源的属性和关系。例如,在 Kubernetes 中,可以编写一个 Pod 或 Deployment 的 YAML 配置文件,描述应用程序运行所需的容器镜像、副本数量、资源限制等细节。原创 2024-04-07 21:57:17 · 612 阅读 · 0 评论 -
高效的二进制列化格式 MessagePack 详解
MessagePack (简称 msgPack)是一种高效的二进制序列化格式,可以将各种数据类型(如整数、字符串、数组等)转换为二进制格式,以便于在网络传输或存储时使用。与 JSON 和 XML 等文本格式相比,MessagePack 的二进制格式更加紧凑,因此在处理大量数据时可以提供更好的性能。原创 2024-03-24 22:03:30 · 817 阅读 · 0 评论 -
高效灵活可扩展的数据序列化格式 TLV 详解
TLV(Tag-Length-Value)是一种常用的数据序列化格式,主要用于数据包或消息的有效载荷编码。这种编码方式把数据划分为三个主要部分:Tag(标签)、Length(长度)和 Value(值)。这种方式在电信、计算机网络、智能卡、物联网等领域被广泛应用,尤其在那些需要高效、灵活且可扩展的数据编码方案的领域。原创 2024-03-17 19:32:03 · 1604 阅读 · 0 评论 -
基于 .netrc 文件的身份验证详解
netrc(Network Resource Configuration)文件是一种在 Unix 和类 Unix 系统中用于存储网络登录和身份验证信息的文件,通常位于用户计算机的 home 目录下,文件名为 .netrc。这个文件可以包含(Machine)、登录名(Login)和密码(Password)三元组和其他字段,以便在执行诸如 FTP、HTTP、HTTPS、git 等命令行工具时自动进行身份验证。原创 2024-03-16 11:05:29 · 1453 阅读 · 0 评论 -
API 常用的序列化协议详解
API(Application Programming Interface,应用程序编程接口)在软件开发中扮演着至关重要的角色,不同的系统之间借助 API 可以通过网络进行数据交换。在数据交换过程中,序列化协议是实现数据结构转换为便于传输和存储格式的关键技术。序列化协议定义了如何将数据结构转换为一系列字节,以及如何将这些字节再转换回原始数据结构。常用的序列化协议有很多种,每种协议都有其特点和适用场景。本文将简单介绍下几种常用的序列化协议。原创 2024-03-05 21:43:22 · 1053 阅读 · 0 评论 -
到底什么是单点登录(SSO)?
单点登录(Single Sign-On,简称 SSO)是一种集中式的身份验证和授权机制,用户只需在一处输入一次凭证(例如用户名和密码)就可以访问多个相关但独立的软件系统。在数字化时代,企业和组织通常会使用多个应用程序和服务来支撑其业务流程。如果没有单点登录,也就意味着用户需要记住多个系统的用户名和密码,这对于用户来说既不方便也不安全,单点登录的出现就是为了解决这个问题。原创 2024-02-29 21:42:50 · 1226 阅读 · 1 评论 -
软件领域中,阈(yù)值还是阀(fá)值?
在日常的交流中,相信很多人经常听到阈值或者阀值这个词,大家可能都能理解这个词的意思,但是到底该用哪个词呢?原创 2024-02-26 21:01:51 · 953 阅读 · 0 评论 -
ChatGPT 开放接口使用的认证方式 API Key Authentication 详解
API Key 通常是一个字符串,由 API 提供者生成并提供给 API 调用者。当 API 调用者发起请求时,需要在请求中包含这个 API Key,服务端接收到请求后会检查这个 Key 是否有效。原创 2024-02-07 16:58:48 · 1842 阅读 · 0 评论 -
权限系统设计详解(三):ABAC 基于属性的访问控制
ABAC(Attribute-Based Access Control,基于属性的访问控制)是一种灵活的访问控制机制,可以根据多个属性来控制用户对资源的访问。这些属性可以是用户属性(如职位、年龄、部门)、资源属性(如文档分类、创建日期)、环境属性(如访问时间、网络位置)和行为属性(如读取、写入、执行)等。ABAC 通过定义一系列的访问策略,这些策略基于属性进行评估,以决定是否允许用户执行特定的操作。ABAC 提供了比传统的访问控制模型(如基于角色的访问控制 RBAC)更高的灵活性和更细的粒度。原创 2024-02-04 21:39:32 · 3351 阅读 · 1 评论 -
观察复杂系统内部情况的秘密武器-可观测性详解
在软件系统中,可观测性通常是指系统内部状态和行为的可见性,通过收集和分析系统产生的数据(如日志、度量指标、追踪信息),可以及时且准确地了解系统内部运行状况的能力。这些数据构成了对系统状态的可观测视图,使得运维和开发人员能够观察系统的实时行为、查看健康状况及发现潜在问题。原创 2024-02-03 15:16:00 · 1153 阅读 · 0 评论 -
权限系统设计详解(二):IBAC 基于身份的访问控制
IBAC(Identity-Based Access Control,基于身份的访问控制)是信息安全管理中的一种传统访问控制模型,根据用户的身份(如用户名或用户ID)来授权用户对系统资源的访问。这种方法直接将访问权限与个体的身份相关联,是最直观的访问控制方式之一。与RBAC(基于角色的访问控制)不同,IBAC 更加强调用户身份的作用,通过身份信息来控制访问权限。原创 2024-02-02 21:44:01 · 1007 阅读 · 0 评论 -
权限系统设计详解(一):RBAC 基于角色的访问控制
RBAC(Role-Based Access Control,基于角色的访问控制)是一种被广泛使用的权限管理模型,用于控制用户对系统资源的访问权限。通过将权限与角色相关联,然后将角色分配给用户,从而实现更灵活、更易于管理的安全策略。原创 2024-01-31 21:48:33 · 1621 阅读 · 0 评论 -
新型唯一标识符 ULID 详解
ULID(Universally Unique Lexicographically Sortable Identifier,通用唯一字典排序标识符)是一种新型的唯一标识符格式,由 Alizain Feerasta 在2016年提出,在保持唯一性的同时,提供了可排序的特性。ULID 旨在解决 UUID 在某些场景下存在问题,并提供额外的优势。这使得 ULID 在需要排序的同时保持全局唯一性的场景中非常有用,例如在分布式系统中用于日志排序、数据库主键等。原创 2024-01-28 12:48:31 · 2202 阅读 · 0 评论 -
你真的了解 UUID 吗?
UUID(Universally Unique Identifier,通用唯一标识符)是在计算机科学和信息技术领域中被广泛使用的一种数据格式,用于确保不同系统间标识符的唯一性。UUID 的设计可以在没有中心化服务的情况下生成唯一的标识符,非常适用于分布式计算系统。原创 2024-01-27 11:46:12 · 1141 阅读 · 0 评论 -
HTTP API 认证技术详解(五):Token-based Authentication
Token-based 认证是一种无状态的认证方式,被广泛用于现代 Web 应用程序中,客户端在登录成功后,服务器会返回一个 Token,客户端需要保存这个 Token。在后续的请求中,客户端需要在请求头中带上这个 Token,服务器通过验证 Token 的有效性来完成身份认证。原创 2024-01-24 21:09:24 · 1438 阅读 · 0 评论 -
HTTP API 认证技术详解(四):HMAC Authentication
HMAC(Hash-based Message Authentication Code)认证是一种被广泛使用的技术,用于验证消息的完整性和真实性。HMAC 结合了哈希函数和加密密钥,比单纯的哈希更安全。在网络通信和数据存储中,HMAC 可以确保传输的数据未被篡改,并验证消息发送者的身份。原创 2024-01-17 21:38:45 · 1235 阅读 · 0 评论 -
HTTP API 认证技术详解(三):JWT Authentication
JWT(JSON Web Tokens)是一种开放标准(RFC 7519),定义了一种紧凑的、自包含的格式,用于实现网络应用程序中的身份验证和授权机制。原创 2024-01-15 21:56:08 · 1266 阅读 · 0 评论 -
HTTP API 认证技术详解(二):Digest Access Authentication
Digest Access Authentication 是一种基于 HTTP 协议的身份验证机制,通过数字摘要来验证用户的身份,相较于基本认证(Basic Authentication)使用用户名密码的方式,提供了更高的安全性和灵活性。在 Digest 认证中,不会直接发送密码,而是发送摘要信息,这样即使在非安全的通道上也不会因被截获数据而泄露密码。原创 2024-01-14 20:34:31 · 1168 阅读 · 0 评论 -
HTTP API 认证技术详解(一):Basic Authentication
Basic Authentication 是一种 HTTP 认证协议,用于进行简单的身份验证。RFC 2617 是认证方法的实现规范,MDN HTTP Authentication 进行了具体的描述。当用户尝试访问受保护的资源时,服务器会判断 Header 里面有没有 Authorization 字段,如果没有,会返回一个 401 Unauthorized 状态码,并在响应的 WWW-Authenticate 头部指定认证类型为 Basic。原创 2024-01-13 11:16:22 · 2110 阅读 · 0 评论 -
故障排查利器-错误日志详解
错误日志,也称异常日志,是记录应用程序、系统或服务在运行时出现的错误信息的文件或数据流。这些日志通常包含了足够的信息来识别、分析和解决问题,如错误类型、发生时间、发生位置以及可能的原因。错误可能是由于代码缺陷、资源不足、硬件故障或外部因素引起的。原创 2023-12-25 22:15:19 · 1332 阅读 · 0 评论 -
API 接口到底要不要添加签名机制?
API 签名机制是用于确认消息的来源和保护数据完整性的一种安全措施。发送方(客户端)使用和接收方(服务器端)预先约定的密钥和签名算法,对请求数据(请求体、时间戳、随机数等按照特定规则进行排序和拼接)计算出一个签名。发送方将生成的签名作为请求头或请求参数的一部分,随 API 请求一起发送。接收方在接收到请求后,使用相同的密钥和签名算法,对请求数据(和发送方采用一样的排序和拼接方式)计算出一个签名,并与接收到的签名进行比较,一样则处理请求,否则拒绝。原创 2023-12-24 19:37:49 · 1377 阅读 · 0 评论 -
Web 安全之文件下载漏洞详解
在数字化时代,文件下载是网络应用程序的重要的功能之一,用户可以通过这一功能获取所需的数据和信息。但是这一看似简单的功能的实现一不小心就会产生安全风险,即文件下载漏洞。攻击者可以通过文件下载漏洞非法获取到服务器上的敏感文件或受保护的文件,导致数据泄露、系统被入侵、知识产权被窃取等一系列严重后果。本文将深入讲解文件下载漏洞的原理、类型、攻击方式、影响和防护措施。原创 2023-12-24 10:46:54 · 2142 阅读 · 0 评论 -
设计 API 接口时如何设计高效的防重放机制?
重放攻击是一种常见的网络安全威胁,是指攻击者截获合法的 API 请求数据,并在之后重新发送这些数据到服务器,来获取未经授权的访问权限或执行其他恶意操作。这种攻击通常发生在没有适当防重放机制的 API 接口上。例如,一个 API 接口用于处理用户的转账请求,如果没有防重放机制,攻击者可以截获正常的请求数据,并使用这些数据重复请求接口,导致资金被多次转出。原创 2023-12-22 21:39:15 · 1212 阅读 · 0 评论 -
Web 安全之文件上传漏洞详解
文件上传漏洞是网络安全中的常见问题,通常发生在网站或应用程序允许用户上传文件到服务器的场景。这类漏洞如果被攻击者利用,可能导致数据泄露、非法文件分发、服务器入侵甚至整个系统被控制。本文将深入讲解文件上传漏洞的类型、攻击方式、影响以及防护措施。原创 2023-12-20 21:34:08 · 1243 阅读 · 0 评论 -
加密数据安全性的两大安全护盾-前向安全性与后向安全性详解
前向安全性,也称为完美前向保密(Perfect Forward Secrecy, PFS),是指即使长期密钥在未来被破解或泄露,也不会危及过去的通信内容,从而保护过去的通信内容不被破解。具体来说,如果一个密码系统具有前向安全性,那么在某个时刻之后泄露的密钥将无法解密在此之前加密的数据。后向安全性(Backward Security)是指一个密码系统在密钥泄露或密码被破解的情况下,不会对未来的通信内容的安全性产生影响。原创 2023-12-17 14:26:11 · 1867 阅读 · 0 评论