拦截项目中的敏感操作 分析现有日志中间件执行流程 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 场景问题
百万量级 Excel 数据下,EasyExcel 和 Apache POI 的对比 简单介绍 EasyExcel 和 POIEasyExcel 和 Apache POI 是 Java 中常用的处理 Excel 文件的开源工具库。 Apache POI 是功能全面的 Excel 读写库,支持 .xls 和 .xlsx 格式,适合复杂的 Excel 操作,比如自定义样式、图表、公式等。但它在处理大文件时内存占用较高,效率相对较低。 EasyExcel 是阿里巴巴 2017 年开源的 2025-05-22 场景问题
浅谈 JVM 堆内存 堆内存是做什么的堆内存用来存放 Java 中的 实例对象和数组。当我们 new 一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间用于存放它们。堆内存也有一些特点: 堆内存是 JVM 内存中最大的一部分 堆内存是线程共享的,也是垃圾回收的主要回收区 一个 JVM 实例只存在一个堆内存 堆内存可以在运行时动态地分配大小 堆内存是先进先出 FIFO 的 堆内存的组成部分首先思考一个问题,为 2025-05-19 Java > Java虚拟机