RBAC 权限模型梳理 什么是 RBAC 权限模型RBAC(Role-Based Access Control)即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。RBAC 认为鉴权的过程可以进行如下概括: Who、What、How构成了访问权限三元组。 鉴权过程实际上就是判断 Who 是否可以对 What 进行 How 的访问操作。 RBAC 支持的安全原则RBAC 支持三个著名的安全原则 2025-07-28 架构设计
Go 语言中的 sync 包 在并发编程中,同步原语(也就是我们通常说的锁)的主要作用是保证多个线程或者 goroutine在访问临界资源时不会出现线程安全问题,Go 语言中的 sync 包就提供了常用的同步源语,这里简单梳理一下不同同步源语的使用场景。 sync.Mutexsync.Mutex 实现了对临界资源的加锁访问: 12345mutex := &sync.Mutex{}mutex.Lock 2025-07-23 Go
拦截项目中的敏感操作 分析现有日志中间件执行流程 init 方法:注册日志中间件,使用 once.Do() 保证 processLogs 协程以单例模式存在。 Shutdown 方法:优雅关闭日志处理器。 logFilterHandle 方法:实现了真正的日志记录逻辑,这里可以类比 Java 中的 AOP 来理解,以一种环绕通知的方式实现了日志记录。 sequenceDiagram participan 2025-07-20 场景问题
MacOS 通过 Homebrew 安装 Redis 安装 Redis12345brew install redisbrew link redis# 启动 Redis ------------redis-server 看到下图证明启动成功: 按需修改配置文件通过 Homebrew 安装的 Redis 和用常规 tar 包安装的 Redis 的配置文件目录有所不同。 Homebrew 安装的配置文件路径: /usr/local/etc/redis 2025-07-18 环境搭建
什么是服务治理 在应用初期,开发团队通常以快速上线为首要目标,此时的系统架构往往采用单体架构。虽然其开发部署简单,但随着用户数量不断增长、系统访问量显著上升,单体应用很快便会暴露出一系列性能瓶颈和扩展性问题,难以应对高并发场景。 为了解决这些问题,架构需要从单体逐步演进为分布式系统,将原本集中在一个应用中的功能模块拆分为多个独立部署的服务(即“微服务”)。服务之间可以通过 HTTP(如 RESTful API)或 2025-07-10 微服务
RPC 快速扫盲 什么是 RPCRPC(Remote Procedure Call)是一种通信协议,允许一个程序调用另一个程序(通常位于不同的机器或进程中)的函数或方法,就像调用本地函数一样。它的核心目标是隐藏网络通信的复杂性,让开发者专注于业务逻辑。 什么是 RPC 框架RPC框架是实现RPC协议的工具集,它封装了以下功能: 1. 通信协议:定义数据如何传输(如HTTP、gRPC、TCP等)。 2. 序列化:将参 2025-07-10 RPC
Cursor User Data写入错误解决 问题背景 A system error occurred (EACCES: permission denied, mkdir ‘/Users/moonike/Library/Application Support/Cursor/logs/20250705T172721’) Please make sure the followi 2025-07-05 疑难杂症
Protobuf 快速入门 Protobuf 是什么Protobuf(Protocol Buffers)是 Google 开发的一种轻量级、高效的序列化结构数据的方法,它被广泛应用于不同的编程语言中,特别是分布式系统、微服务架构以及高效的数据传输。Protobuf 提供了比传统的 JSON 和 XML 更小、更快速的数据格式。通过定义好的 .proto 文件,Protobuf 可以自动生成各种编程语言的源代码,提供一种语言中 2025-07-03 Protobuf
Go 语言快速扫盲 main.go 和 go.mod main.go 是 Go 项目的入口文件,通常包含了应用程序的启动逻辑和执行过程。 1234567package mainimport "fmt"func main() { fmt.Println("Hello, Go!") // 程序启动时执行的逻辑} go.mod 是 Go 语言的 模块管 2025-07-03 Go
基于 Redis 实现令牌桶限流和动态配置 QPS 场景介绍这几天没什么需求,再来复现一个公司的业务场景。用量明细分析模块我们在某次迭代中新开发的一个模块,它的主要作用是接收子应用上传的用量明细,但是由于用量明细经常会有波动,这会导致子应用短时间内进行多次上报,大量消耗资源。考虑到这是一个新的小模块,因此我们采用了基于 Redis 和令牌桶算法来实现限流。同时又因为各个子应用的上报频率波动较大,所以还开发了根据角色来动态配置 QPS 的功能。 简单 2025-05-23 场景问题