IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

后端

共 1984 篇文章

IT 2026-07-01 08:40:21 / 累计浏览 125

百度网络监控工具开源第四弹:evr — 构造 VXLAN 探测

百度开源网络监控工具evr针对无法在目标设备(如EVR边缘虚拟路由器)部署agent或对面放置探测机的场景,设计了单边VXLAN探测方案。工具利用VXLAN协议特性:VTEP设备根据内层IP头转发解封后的帧。evr构造特殊VXLAN包,内层源和目标IP均设为探测机本机地址,使EVR解封后自动将内层帧反射回探测机,实现单边探测。同时,在payload中嵌入EVRCHECK协议头,包含目标EVR的源IP(4字节),用于回包时快速映射目标。外层源IP可配置为mock地址,实现探测机切换时无需修改EVR配置,提升运维灵活性。文章详细解析了VXLAN包结构、VTEP工作模型、evr的三招设计(自环内层帧、payload标识、外层IP欺骗),以及JSON配置驱动和Go语言实现示例,通过raw socket发送手工构造包,仅需百度侧单机部署,破解了网络监控困境。

本机暂存
IT 2026-06-28 16:40:57 / 累计浏览 55

Go 语言技能:AI 时代的 Go 开发工具链

文章探讨Go语言在AI时代开发中面临的挑战,如代码版本演进导致的写法不一致、并发原语的静默错误以及性能优化依赖测量而非猜测,这些通用AI工具难以有效处理。为此,作者介绍五个Go专属Skill:/modern-go基于go.mod版本门控,自动将代码升级至新版本地道写法,包含35条转换规则并确保安全不越级;chao-go-perf整合Dave Cheney等高性能工作坊知识,强制先benchmark再优化,避免凭直觉猜测;chao-go-sync专注并发编程,覆盖所有sync原语及分布式模式;go-style-guide定义工程契约,规范包设计、错误处理等;cc-skills-golang是生产级全家桶,整合前述技能并提供跨工具集成和效果评估。这些Skill将Go专家经验编码为可复用方法论,使AI Agent能遵循最佳实践,提升代码现代化、安全性与性能。文章体现了从Prompt-Driven到Skill-Driven的方法论转变,强调版本门控和测量驱动的重要性,为Go生态系统提供了可靠工具支持。

本机暂存
IT 2026-06-25 20:40:28 / 累计浏览 147

等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go

seq库为Go语言引入链式管道编程,解决传统嵌套函数调用的可读性问题。Go语言因泛型限制,此前库如lo只能采用从内往外的写法,导致代码阅读顺序与数据流相反。Go 1.27引入泛型方法,允许方法定义类型参数,使seq得以实现从左到右的链式调用。库基于iter.Seq接口,支持Filter、Map、Sum、GroupBy、Distinct等操作,并具备惰性求值特性,可处理无限序列和短路优化。示例展示分组统计、去重求和、前缀和计算、滑动窗口等实用场景,强调代码流与数据流一致的优势。开发过程中使用AI辅助,但核心设计基于需求文档。seq需要Go 1.27版本,提升了Go代码的表达力和维护性,为函数式风格编程提供支持。

本机暂存
IT 2026-06-21 19:10:45 / 累计浏览 101

使用 CLIProxyAPI, 让最新的 Codex 能够支持国内的各大模型

CLIProxyAPI 是一个轻量级 AI API 代理服务器,核心功能是实现 OpenAI Responses API 与 Chat Completions API 之间的双向格式转换,从而解决 OpenAI Codex CLI 仅支持 Responses API 而国内模型如 DeepSeek、GLM、Kimi 等仅提供 Chat Completions API 的兼容性问题。工作原理涉及请求方向的格式映射(如将 instructions 转换为 system message)和响应方向的流式 SSE 数据支持。安装通过 Git 克隆和 Go 编译完成,配置灵活,支持多 Provider 和模型别名设置,配置文件采用 YAML 格式并支持热加载。路由机制允许通过 prefix 前缀或 alias 自动匹配指定 Provider,避免重名冲突。文章提供了详细的配置示例,包括添加新 Provider 和模型,以及关键配置项说明。此工具简化了 Codex CLI 与国内 AI 模型的集成,适用于有 API 代理需求的开发者。

本机暂存
IT 2026-06-21 19:10:45 / 累计浏览 72

告别死锁和陈旧语法、告别性能瓶颈:三个开源 Skill,新手Gopher 秒变 Go 语言大神

文章聚焦Go语言开发者面临的三大核心挑战:并发死锁与数据竞争、性能瓶颈分析、代码语法现代化。针对并发问题,介绍AI Skill chao-go-sync,它整合并发编程知识,能诊断潜在竞态条件、锁竞争等bug,并推荐如RWMutex或WaitGroup.Go等优化方案。针对性能问题,chao-go-perf Skill提供数据驱动分析,指导基准测试编写、逃逸分析解读、CPU缓存优化及版本感知的性能改进。针对代码现代化,modern-go Skill基于go.mod版本自动应用28种语法转换规则,如将interface{}替换为any、使用slices.SortFunc等,确保代码符合最新Go惯用法。这些Skill嵌入AI编码助手后,可实时辅助开发者:例如分析项目并发缺陷时,提供详细报告和修复建议;检查性能问题时,指出热点函数和内存分配;升级旧代码时,自动执行转换并输出变更总结。文章通过实际案例演示Skill功能,并给出安装命令,强调这些开源工具如何降低Go开发门槛,提升效率与代码质量。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 76

大厂的内部工具居然开源了! 一窥百度物理网络秒级监控定位的秘密

百度开源物理网络监控工具集nettools,首批发布bitflip和bitflip6,专注于大规模网络中的丢包检测与比特翻转识别。在物理网络环境中,传统ICMP的ping因无法构造五元组而失效,难以覆盖ECMP哈希分散的链路。bitflip采用UDP探测策略,通过生成大量五元组以确保覆盖所有可能路径。单向探测协议在包头上携带上一时间窗口的发送信息,使服务端能还原每个包的五元组,实现精确丢包定位,避免双向探测的路径误导。比特翻转检测使用四种salt填充模式,包括全0、全1、固定值和互补交替,专门应对绕过校验和的互补跳变问题。工程实现上,客户端利用raw socket直接构造IP和UDP包,结合BPF过滤优化收包性能,支持高并发探测。工具还支持双向对比故障方向,结合traceroute定位具体设备端口故障。该工具解决了大规模云服务中网络监控的精度与效率挑战,提供了从检测到定位的完整解决方案。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 68

百度网络监控工具开源第三弹:lidar — 不只是 pingmesh

百度开源的网络监控工具lidar是一种创新的探测方案,区别于传统pingmesh的全网互ping模式。传统pingmesh基于服务器间O(n²)复杂度的探测,百度原有netradar系统存在误报、漏报、时效慢和部署更新困难等问题。lidar采用单探测机发送TCP SYN包探测目标服务器,通过三种响应(SYN-ACK、RST、无响应)直接判断网络状态,无需安装agent或服务器端配置,简化了运维。开发中解决了跨平台收包差异:Linux上使用raw socket接收TCP响应副本,而macOS由于内核拦截,需通过BPF设备在链路层抓包。为优化高吞吐服务器性能,使用BPF过滤器在内核层过滤无关报文,仅投递匹配探测端口的报文,减少用户态开销。通过源端口轮转策略覆盖ECMP多路径,提高探测全面性。lidar具有高时效、高准确率和易于更新的优点,适用于机房内外网络监控,支持多种配置和高速率探测,已开源供社区使用。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 58

别只盯着gopacket了,看看这个强大的网络库

本文介绍了Go语言的新网络库goscapy,它是Python Scapy在Go生态的移植,旨在解决gopacket等传统库API繁琐的问题。goscapy提供两种核心数据包构造方式:一是流式Builder API,通过链式调用与类型安全的`Over()`方法逐层叠加协议,实现清晰的分层构建;二是针对常见协议组合的快捷函数,可实现一行代码完成复杂数据包构造。其核心优势在于自动化了繁琐的网络协议细节,通过BuildHook机制在序列化时自动计算各层校验和(包括伪头部),并利用BindingRule在层间绑定时自动设置正确的协议类型字段(如EtherType、IP Protocol),避免了手动设置易出错的痛点。这种设计显著提升了网络编程的效率和代码可读性,特别适用于需要快速构造、发送网络数据包并进行测试或探测的场景,为Go开发者提供了更优雅、强大的网络工具选择。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 80

寻找你代码中的臭味:一个让 AI 帮你嗅出架构腐化的开源 Skill

文章介绍了开源 Skill /smell,一个嵌入 AI 编程 Agent 的代码分析工具,用于检测架构腐化和坏味道。它扫描代码库,从架构到代码层面进行全面分析,输出 Markdown 报告,涵盖八个检测维度:架构级反模式(如 Big Ball of Mud、Anemic Domain Model)、耦合问题(循环依赖、内容耦合)、内聚性问题(God Object、Shotgun Surgery)、设计原则违反(SOLID、DRY)、代码级坏味道(Long Method、Magic Numbers)、测试健康度、命名质量、算法复杂度热点(N+1 查询、嵌套循环)。使用方式简单,在 Claude Code 中输入 /smell 命令,选择分析范围(如整个项目或指定模块),即可生成报告,包含问题严重度分级、代码证据、重构建议和分阶段路线图。工具整合了 Martin Fowler、Robert C. Martin 等大师的知识库,帮助开发者快速定位臭源,优先处理关键问题,提升代码质量和可维护性。对于团队协作和遗留项目治理,它提供了系统化的分析框架,减少人为盲点,支持 AI 辅助重构。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 165

Loop Engineering 实践:我把 RDMA 开发库移植到 Go 语言,花费 239 块钱

作者为了在Go语言中实现高性能RDMA库,采用Loop Engineering方法进行自动化移植实验。Loop Engineering的核心是将复杂任务拆分为可管理的小单元,在循环中逐步执行实现、审查和发布。实验从一份PRD出发,生成15个依赖issue,通过AI Agent自动化处理,覆盖设备枚举、PD/MR分配、QP创建、TCP握手和perftest工具构建。AI在macOS上生成代码,使用stub实现确保跨平台编译。但流水线中审查步骤未真正执行,导致cgo与rdma-core库的兼容性问题未被及时发现。真机在Linux服务器编译时,暴露imm_data访问错误和ibv_query_port类型不匹配等致命bug,此外还有内存屏障缺失、资源泄漏等运行时问题。修复阶段通过静态分析工具和真机测试逐步解决,包括编写C辅助函数、调整unsafe.Pointer用法和引入原子操作。最终项目包含3981行Go代码和16个PR,花费239元。文章展示了Loop Engineering在结构化任务中的效率,同时强调了人工审查和硬件环境验证的必要性,对后端系统开发有实践参考价值。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 66

傻瓜式RDMA高性能网络开发:从零跑到 400 Gb每秒

RDMA(远程直接内存访问)是一种高性能网络技术,通过内核旁路、零拷贝和CPU卸载机制,使网卡能直接读写远程内存,实现微秒级延迟和数百Gb/s吞吐,广泛应用于AI训练、分布式存储等领域。但其编程复杂,涉及队列对(QP)、完成队列(CQ)、内存区域(MR)等术语,标准流程繁琐易错。本文介绍了gordma,一个用Go语言封装的RDMA库,提供两套API:高级API类似标准net包,简化开发;底层API直接映射RDMA原语,允许精细控制。在400Gb/s RoCE v2网卡实测中,gordma高级API吞吐达28Gb/s,底层API达232Gb/s,原生基准为392Gb/s。文章详解了RDMA核心概念,包括历史发展、术语速记、传输类型,并演示了使用perftest工具进行基准测试,讨论了单位换算和环境因素影响。gordma为Go开发者提供了从零开始RDMA开发的路径,平衡易用性与性能,适用于高性能计算场景。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 66

amd64 微架构级别对 Go 程序性能提升多少?

文章探讨了Go 1.18引入的AMD64微架构级别(v1至v4)对程序性能的影响。通过设置GOAMD64环境变量,开发者可以选择目标指令集级别:v1为默认基线,v2添加popcnt等指令,v3支持AVX2,v4包括AVX-512。作者以Roaring Bitmaps压缩位集库为例进行基准测试,该库依赖种群计数和位操作。测试在Intel Xeon Gold 6548N处理器上使用Go 1.26.2完成。结果显示,v2级别启用popcnt指令后,位图容器的种群计数操作耗时减少约43%,而v1级别因使用软件回退实现而性能较低。v3级别通过AVX2向量化进一步优化,例如从密集位图构建容器时性能提升38%,集合操作减少22%。v4级别未带来改善,因为Go编译器尚未生成AVX-512指令。文章指出,现代硬件应至少使用v2级别以免费获得性能增益,v3值得探索,但v4当前无效。结论强调编译器标志对性能的关键作用,并揭示了Go编译器在利用新指令方面的局限,为开发者提供了实际调优指导。

本机暂存
IT 2026-06-21 18:40:38 / 累计浏览 61

Go 实验特性详解

Go语言在版本发布中引入实验性特性,旨在通过用户反馈优化后正式集成。这些特性可能表现为标准库新包、编译器运行时改动或行为变更。例如,Go 1.24的testing/synctest包在反馈后调整API并进入通用可用阶段;Go 1.25的新垃圾回收器设计提升性能,在Go 1.26成为默认选项;Go 1.21的循环变量语义变更消除了历史bug,作为实验发布以测试兼容性。实验特性生命周期多样:通常默认关闭,需通过GOEXPERIMENT环境变量选择加入;若反馈积极,经过版本迭代可能变为默认开启。部分特性如内存arena因负面反馈而搁置,Go 1.22的编译器内联逻辑持续评估。永久实验特性如FieldTrack结构体字段追踪和StaticLockRanking死锁诊断工具则长期存在但无意默认启用。截至Go 1.26,当前实验特性包括JSONv2改进JSON处理、RuntimeSecret清零内存、SIMD访问架构特定操作等。控制实验特性通过GOEXPERIMENT实现:启用时设置逗号分隔小写名称,禁用则添加no前缀,如GOEXPERIMENT=jsonv2,nogreenteagc。开发者应关注GreenTeaGC新垃圾回收器和Dwarf5调试信息生成等特性,它们默认开启但保留临时退出选项。理解这些机制有助于Go开发者利用语言演进,平衡创新与稳定性。

本机暂存
IT 2026-06-15 14:40:05 / 累计浏览 168

美团 BI 在指标平台和分析引擎上的探索和实践

美团BI平台构建了以指标平台为核心的新一代架构,解决传统BI中数据口径混乱、查询性能差等问题。核心能力包括自动语义和增强计算。自动语义实现“定义即研发”,将业务语言解析为结构化逻辑表达,通过主外键关联数仓模型自动形成星型、雪花模型,扩展复杂指标,并贯穿指标定义、模型关联、指标高亮、路由选表及查询语义构建全流程。增强计算通过智能查询服务支持多引擎模型和查询降级策略,以及智能物化自动构建宽表和汇总表,平衡运营监控秒级响应与灵活分析的大数据处理需求。平台还探索增量计算引擎,利用存算分离、弹性伸缩等特性提升性能与稳定性。目前该平台已支持百余业务线,查询量达百万级,成功率超99.9%,并在新引擎评测中验证性能优势。未来将继续深化自动语义和增强计算,推动数据分析智能化。

本机暂存
IT 2026-06-14 05:40:22 / 累计浏览 102

把 Next.js 拆成壳:LobeHub 后端迁移 Hono 实录

LobeHub项目最初采用Next.js处理全栈功能,但随规模扩大,后端与前端耦合导致维护困难和性能瓶颈。团队决定将后端迁移至轻量级Hono框架,以优化服务器性能和架构分离。迁移过程中,首先重构API路由,将Next.js中的业务逻辑提取为独立模块,基于Hono重写后端代码,引入中间件优化和数据库查询改进。前端通过API接口与新后端交互,保持用户体验一致。测试采用自动化策略确保功能回归,部署使用容器化技术提高可移植性。迁移后,后端启动时间显著减少,API响应延迟降低,系统可扩展性和可维护性提升。文章还讨论了选择Hono而非其他框架的原因,如高性能和低开销,并分享了依赖冲突、数据迁移等挑战的解决方案。通过逐步迁移和监控集成,最小化了线上影响,为类似项目提供了实用参考,强调了适时重构在技术演进中的价值。

本机暂存
IT 2026-06-14 05:11:01 / 累计浏览 169

把 MinIO 示例迁到 OtterIO:使用、部署与迁移验证

本文详细阐述了从MinIO迁移到OtterIO的实践流程。迁移起点是部署:通过一条Docker命令如'docker run -d -p 9000:9000 otterio/otterio'即可启动OtterIO服务,简化环境配置。为验证迁移,使用docker compose搭建多版本MinIO与OtterIO共存的实验环境,模拟真实场景。数据同步借助AWS CLI的's3 sync'或s3cmd工具,通过S3兼容API将对象从MinIO存储桶复制到OtterIO。迁移后校验至关重要:对比每个对象的ETag校验和、文件大小及总数量,确保数据一致性。文章还明确了兼容性边界,指出OtterIO可能不支持MinIO的mc admin管理命令、特定企业特性及商标发行物,帮助用户规避风险。整体指南注重可操作性和验证完整性,适用于CI/CD流程、私有化部署或现有项目的存储层替换,为开发者提供平滑迁移路径。

本机暂存
IT 2026-06-14 05:11:01 / 累计浏览 70

从 MinIO 到 OtterIO:整理一条 Apache 2.0 开源对象存储代码线

对象存储系统MinIO因其高性能和开源特性被广泛应用。本文记录了从基于MinIO的soulteary/minio分支到OtterIO的完整代码整理过程,遵循Apache 2.0许可证。整理工作分为十二个关键步骤:首先实现项目身份和命名的独立,确保代码线清晰可追溯;将2021年的遗留代码升级至2026年版本,使用gofiber/fiber/v3重写HTTP入口,以提高性能和现代性;缩小Bucket Notification与Gateway的维护范围,降低复杂性。安全层面,逐项纳入2021年4月后的上游CVE和GHSA,按攻击面拆解修复,并补充LDAP DN规范化与迁移机制。工程改进包括完善CI流程、自动化Release、构建多架构镜像,以及拆分控制台listener。OtterIO在保留S3兼容性的同时,诚实说明了其适用场景和风险边界,为开源社区提供了更安全、易维护的对象存储方案。这一过程突出了代码整理、安全加固和工程优化的重要性,有助于开发者理解如何系统化改进开源项目。

本机暂存
IT 2026-06-14 05:11:01 / 累计浏览 107

重新审视 MinIO:许可证、归档、社区 fork 与我的 Apache 2.0 基线

MinIO作为主流对象存储软件,近期开源生态发生重要变化:许可证从Apache 2.0切换到AGPLv3,官方GitHub仓库被归档并停止维护,社区版预编译二进制也不再发布。本文重新审视了MinIO的当前状态,深入比较了PGSTY/Silo和JuiceData/minio两个社区fork的定位、技术实现与许可证边界。作者基于切换AGPLv3之前的最后Apache 2.0版本(RELEASE.2021-04-22T15-44-28Z),构建了自己的soulteary/minio主线,将原有HTTP路由替换为高性能的gofiber/fiber/v3框架,优化收敛了Bucket Notification和Gateway功能,并升级Go运行时至1.26版本。这些技术修改旨在保持宽松许可证的同时,提升代码可维护性与性能,为后续OtterIO项目建立稳定基线。文章分析了许可证变更对开源社区的影响,并展示了如何通过技术选型应对软件许可问题,为开发者提供实用参考。

本机暂存
IT 2026-06-14 05:11:01 / 累计浏览 87

Kakapo:使用 Wails v3、Go 和 Echo 构建一个本地翻译工作台

Kakapo 是一个本地桌面翻译工作台,基于 Wails v3、Go 和 Echo 构建,集成多个 OpenAI 兼容模型如 Kimi、DeepSeek 和 OpenAI,支持多模型并行翻译、结果比较、回译、系统朗读和本地历史记录。项目配置存储在 settings.json,API Key 通过 macOS Keychain 安全保存,历史记录存储在 history.json。文章详细记录了从零开始实现 Kakapo 的过程,探讨了 Wails v3 框架如何结合 Go 语言和系统 WebView 构建跨平台桌面应用,以及 Echo Web 框架在处理后端逻辑和 API 集成中的作用。文中分析了在桌面工具场景下使用 OpenAI 兼容接口进行多模型翻译的实践,包括并行处理模型响应、比较翻译结果、实现回译功能和集成系统朗读的实现方式。同时,讨论了数据存储策略、安全性考虑(如使用 Keychain 管理敏感信息)以及在实际开发中遇到的技术取舍和优化方案。通过本文,读者可以了解如何利用现代技术栈构建功能丰富的本地 AI 辅助工具,获取设计和实现方面的经验。

本机暂存
IT 2026-06-14 04:40:55 / 累计浏览 83

Traefik 阿里云使用方案:自动证书与服务接入

在阿里云环境中使用 Traefik 3 实现 HTTPS 服务接入和 SSL 证书自动管理,是一种高效的云原生实践。通过 AliDNS DNS Challenge,Traefik 能够自动与 Let's Encrypt 交互,完成证书的申请和续签,避免了手动操作的繁琐。结合 Docker Provider,当容器启动时,Traefik 自动检测并配置路由,实现服务的动态发现和负载均衡。阿里云 RAM 的最小权限设计确保 Traefik 仅拥有必要的访问权限,降低了密钥泄露的风险。文章详细介绍了部署步骤,包括 Traefik 的配置文件、Docker 集成方法以及 RAM 策略设置,还涵盖了运维中的常见问题处理和性能优化建议。此外,Traefik 的自动续签功能确保证书始终有效,减少了因证书过期导致的服务中断。Docker Provider 的灵活性允许无缝集成到现有微服务架构中,支持多容器部署。RAM 策略的精细化控制符合安全最佳实践,防止未授权访问。整体方案不仅提升了自动化水平,还增强了系统的可维护性和可扩展性,是阿里云环境下部署 HTTPS 服务的理想选择。

本机暂存