- 博客(67)
- 资源 (10)
- 收藏
- 关注
原创 基于Rsyslog+Kafka+Flink+Clickhouse的高性能日志采集、分析、汇聚存储方法
我们要首先解决日志文件存储和分析的问题,鉴于Nginx日志数据量大的特点,我们必须选择一种功效的分析工具(能流式分析更好)和支持大数据量写入的数据库,经过各种Baidu和谷歌,最终定型为:Kafka + Flink + Clickhouse。
2022-01-08 23:55:43
2351
原创 高并发系统负载均衡与实时监控的实用方案
Nginx+ELK是当下高并发系统负载和监控的成熟方案,网上充斥着各种教程和最佳实践。可要在生产环境部署还是会面临着不小的挑战,生产环境首要满足的条件就是高可用, Nginx至少两个节点,如果后台服务多、并发高、访问接入点多情况,那单nginx节点的数量就会很可观;Elasticsearch要集群部署至少三个节点,对内存的要求也不低;Logstash和日志需要本地采集处理,多少个日志采集点就需要部署多少套,对内存要求不低。综上,这个方案俨然就是“吃机”大户,不但主机资源采购成本高,运维更具技...
2021-12-24 01:06:31
2706
1
原创 【架构选型】中小型软件公司微服务架构选型建议
笔者从事发大水我的精力,从微服务开发。微服务的优势在增量微服务的特性sping cloud alibaba huawei的一些看法
2020-12-18 22:33:48
1706
1
原创 Spring Security OAuth2 ID Token 生成机制深度解析
本文深入解析了Spring Security 7.x中OAuth2 ID Token的生成机制。主要内容包括: 生成流程、核心组件、关键代码分析。文章详细剖析了ID Token从触发条件到最终生成的完整流程,包括核心组件协作关系和关键代码实现。
2026-01-13 22:55:07
832
原创 Spring Security OAuth2 JWT Token 定制:从 5.x 到 7.x 的演进
摘要 本文分析了Spring Security OAuth2在5.x和7.x版本中对JWT Token定制机制的差异。5.x版本主要通过TokenEnhancer、AccessTokenConverter和UserAuthenticationConverter三个核心接口实现Token定制,支持添加自定义字段、用户信息转换等功能。文章详细介绍了各接口的典型使用场景,包括向Token添加用户ID、租户信息等业务字段,以及链式增强器的配置方法。
2026-01-13 22:51:29
990
原创 Claude之父AI编程技巧九:代码格式化工具——让AI代码产出即规范化
摘要:AI代码格式化工具集成指南 本文介绍了如何将代码格式化工具与AI生成的代码集成,确保输出规范化。主要内容包括: 格式化工具概述:解释了代码格式化的意义,包括提升一致性、可读性、协作效率和质量标准。 主流工具推荐: JavaScript/TypeScript:Prettier + ESLint Python:Black + isort 通用格式:jq(JSON)、yq(YAML)、markdown-tidy(Markdown) 工作流集成方案: 通过Git Hooks实现提交前自动格式化 配置GitHu
2026-01-11 12:50:29
741
原创 Claude之父AI编程技巧八:高效任务管理——提升Claude Code工作效率的关键
本文探讨了高效任务管理在AI辅助开发中的关键作用,提出了系统化的任务分解策略和上下文管理方法。文章介绍了任务分解原则、上下文维护模板、工作流程设计(专注模式/批处理/番茄工作法)以及优先级管理矩阵等实用技巧,并提供了任务进度跟踪表和每日计划模板。通过合理规划任务、清晰切换上下文和有序管理优先级,开发者可以显著提升Claude Code的工作效率,实现AI辅助开发能力的质变。
2026-01-11 12:50:14
1020
1
原创 Claude之父AI编程技巧七:Slash命令处理重复工作流——将经验沉淀为可复用的自动化
本文介绍了Claude Code的Slash命令功能,它通过将重复工作流封装为简单命令来提高开发效率。Slash命令是以"/"开头的特殊命令,具有一致性、可复用性等特点,能显著减少手动操作。文章详细讲解了内置命令(如/help、/test)和自定义命令的创建方法,包括简单提交命令和复杂功能开发命令的示例代码。通过将团队经验沉淀为可复用的自动化脚本,Slash命令不仅简化了开发流程,还确保了最佳实践的传承。
2026-01-11 12:49:59
799
原创 Claude之父AI编程技巧六:分步执行工作流——先规划后执行的智能开发模式
分步执行工作流是一种智能开发模式,强调先规划后执行的开发方法论。该模式分为规划阶段和执行阶段,通过预先讨论需求、制定方案和评估风险,避免后期昂贵的返工成本。与传统直接执行方式相比,分步执行能确保开发方向正确,提升代码质量,并考虑扩展性和维护性。完整流程包括需求理解、方案设计、计划制定、用户审查和分步执行五个阶段,通过逐步确认和实时进度报告,实现稳健高效的开发过程。
2026-01-11 12:49:44
721
原创 Claude之父AI编程技巧五:GitHub代码审查集成——让AI成为你的代码守护者
本文介绍了如何将Claude Code AI集成到GitHub工作流中实现智能代码审查。主要内容包括:GitHub Action的安装配置方法,通过@.claude标记触发AI审查的多种方式,以及审查报告的格式说明。该集成可自动分析PR代码,识别安全问题、性能隐患和代码质量问题,并提供修复建议,显著提升代码审查效率和质量。系统支持自定义审查规则和范围,能生成包含严重程度评分和改进建议的详细报告,帮助开发者快速定位和修复问题。
2026-01-11 12:49:26
1023
原创 Claude之父AI编程技巧四:共享团队CLAUDE.md——打造统一的项目智能指南
CLAUDE.md:团队协作的AI编程统一指南 CLAUDE.md是一个Markdown格式的项目智能指南文件,用于规范团队使用AI辅助编程时的行为。它包含项目结构、编码规范、技术栈、命名约定等关键信息,确保团队成员使用Claude Code时能获得一致的代码输出。 该文件支持三级配置: 全局配置(~/.claude/CLAUDE.md):个人编码偏好 项目配置(项目根目录/CLAUDE.md):团队共享规范 本地配置(CLAUDE.local.md):个人实验设置 核心内容包括: 项目概述和技术栈说明 详
2026-01-10 22:53:22
721
原创 Claude之父AI编程技巧三:只用Opus 4.5 + 思考模式——释放Claude Code的全部潜力
摘要 Claude Code的最佳实践是使用Opus 4.5模型结合思考模式。Opus 4.5作为旗舰模型,在代码理解、问题识别和安全性方面显著优于其他模型,其正确率高达94%。思考模式通过内部多轮推理,为复杂任务提供深度分析,特别适合系统设计、遗留代码重构和安全关键开发。虽然思考模式会增加60-167%的token消耗,但能大幅减少bug和返工时间。简单任务可禁用思考模式以节省成本。通过合理配置模型和思考深度,开发者可在代码质量和效率间取得最佳平衡。
2026-01-10 22:52:03
743
原创 Claude之父AI编程技巧二:多平台协同——打破终端边界的全栈开发工作流
Claude之父Boris Cherny展示了如何利用Claude Code的多平台能力构建高效开发工作流。Claude Code支持终端、网页版、IDE、移动端和Slack等多个平台,各平台共享对话历史、项目上下文和配置。核心技巧包括:网页版零配置启动与跨设备同步;移动端快速发起任务;IDE深度集成实现代码补全与修复;Slack无缝融入团队协作。通过合理配置和平台协同,开发者可实现从手机发起任务到电脑审查结果的无缝衔接,大幅提升工作效率。
2026-01-10 22:50:43
779
原创 Claude之父AI编程技巧一:并行终端 + 系统通知——将Claude Code变成你的超级开发团队
本文介绍了如何利用并行终端和系统通知功能将Claude Code转变为高效开发团队。主要内容包括: 并行终端概念:允许同时运行多个隔离的终端会话,每个会话可处理独立任务(如代码重构、测试、文档等) 配置方法: 使用tmux/screen管理多会话 macOS用户可通过iTerm2分屏功能实现 系统通知集成: 配置Notification Hook接收关键提醒 创建智能通知脚本 与iTerm2或第三方通知工具集成 实际应用示例:展示如何协调5个终端同时进行代码分析、API开发、数据模型等任务 高级技巧:会话持
2026-01-10 22:49:07
1157
原创 Spring Security 7 OAuth2 授权码分布式存储之Redis存储方案
本文探讨了Spring Security OAuth2授权码模式在分布式系统中的Redis存储实现方案。针对默认InMemoryOAuth2AuthorizationService仅适用于单机环境的局限,提出基于Redis的分布式存储设计。
2026-01-10 22:19:17
396
原创 OIDC vs OAuth2:企业级身份认证的深度思考与实践
摘要: OAuth2被广泛误用于企业身份认证,但其本质是授权框架而非认证协议。OpenID Connect(OIDC)才是基于OAuth2的认证层,通过ID Token直接携带用户信息,显著提升性能(减少60-75%请求)。对比传统方案(OAuth2需多次API调用)、SAML(XML冗余)和CAS(功能单一),OIDC结合JWT实现高效认证,推荐企业升级现有OAuth2系统或新项目直接采用,以简化流程并增强安全性。
2026-01-09 22:56:12
901
原创 微服务架构选型指南:中小型软件公司的理性思考
本文基于作者十余年架构经验,剖析中小型公司微服务架构的适用性。通过千万级用户APP案例,揭示微服务被神化的优点(松耦合、开发简单等)与现实落地的差距,指出隐藏的运维成本与架构复杂性。强调微服务落地的5个前置条件:充足人力、成熟设施、清晰路线、业务专家团队和暂缓拆分原则。提出技术选型应基于业务实际而非潮流,建议中小团队遵循"单体→模块化→分布式→微服务"的渐进路径。核心观点:避免过度工程,技术服务于业务,理性决策比盲目跟风更重要。(149字)
2026-01-09 22:31:14
1252
原创 Spring Security 7 OAuth2 Token 格式选择浅析
JWT Token 堪称一把双刃剑,让开发者既爱又恨。其自包含的特质让我们无需再为分布式存储而烦恼,带来了更快的响应速度,这确实是值得称赞的优点。但不得不承认,Token 长度的膨胀确实会增加网络传输的额外开销,而算法验签所带来的 CPU 消耗也是客观存在的现实。因此,在实际项目中选择 JWT 还是传统 Session 方案,关键还是要结合用户规模和系统架构来权衡利弊。
2026-01-09 22:22:05
928
原创 Spring Boot 4.x 安全监控新篇章:基于 ObservationFilterChainDecorator 的可观测性实践
Spring Boot 4.x与Spring Security 6.x深度整合,通过ObservationFilterChainDecorator实现了安全监控能力的重大升级。该组件基于透明监控、统一观察等理念,采用异步指标收集机制,与Micrometer框架深度集成。新版本构建了多层次监控体系,包括认证指标(成功/失败次数、处理时间)、授权指标(资源访问权限统计)以及会话安全指标等。
2026-01-07 23:01:40
555
1
原创 告别硬编码!Spring Boot 优雅实现 Controller 路径前缀统一管理
本文介绍了如何通过实现 WebMvcConfigurer 接口优雅地为 Spring Boot 控制器添加统一路径前缀。主要方法是通过 configurePathMatch 方法为不同模块的控制器配置不同前缀,支持基础用法、按包名区分前缀以及自定义注解方式。相比在每个控制器手动拼接前缀,这种方法使配置更集中、代码更简洁、模块划分更清晰,且兼容 Swagger 文档。适用于 Spring Boot 3.x 和 4.x 版本,是统一管理控制器路径前缀的推荐方案。
2026-01-07 22:33:15
242
原创 Spring Boot 4 新特性:原生支持版本控制的革命性升级
Spring Boot 4引入原生API版本控制功能,通过@Version注解和映射注解中的版本参数,提供了声明式版本控制方案。相比传统URL路径、Header或第三方库的方式,新特性解决了代码重复、维护困难等问题,支持类级别和方法级别的细粒度版本管理。开发者可以更灵活地实现多版本API共存,降低维护成本,提升代码可读性和测试便捷性。该功能标志着Spring Boot在API管理方面的重大进步,为企业级应用开发提供了更强大的版本控制能力。
2026-01-05 23:08:08
807
原创 Spring Security 6.x CSRF Token增强:从XorCsrfTokenRequestAttributeHandler到安全实践
Spring Security 6.x在CSRF防护机制上进行了重要升级,引入了XorCsrfTokenRequestAttributeHandler。该处理器采用异或加密算法处理CSRF Token,通过128位随机密钥、Base64编码和严格长度验证(72字节)来增强安全性。相比5.x版本,6.x对Token格式和长度要求更严格,可能导致兼容性问题。开发者应避免直接从Repository获取Token,而应通过Request Attribute获取,以确保Token状态一致并符合安全验证标准。
2026-01-04 22:50:06
1061
原创 从 Gitee 开源项目发布到 Maven Central 中央仓库完整指南
本文详细介绍了将Gitee托管Java项目发布到Maven Central的完整流程,包含7个关键步骤:1)注册Sonatype账号;2)验证Gitee命名空间;3)Mac环境下GPG密钥配置;4)Maven settings.xml设置;5)POM文件配置;6)执行部署;7)常见问题解决方案。重点包括:通过创建公开仓库验证命名空间所有权、生成RSA 4096位GPG密钥、配置GPG Agent解决/dev/tty错误、使用Token认证替代密码等核心环节。
2026-01-03 15:34:39
1104
原创 Spring Framework 6.x 异常国际化完全指南:让错误信息“说“多国语言
Spring Framework 6.x引入了全新的异常处理机制,通过ProblemDetail和ErrorResponse接口实现异常国际化。ProblemDetail遵循RFC 7807规范,提供标准化的错误响应格式。ErrorResponse是国际化核心接口,支持通过MessageSource自动处理异常消息的多语言转换。开发者可以自定义异常实现这些接口,利用Spring自动生成的国际化消息code(基于完整类名)或自定义消息code。
2026-01-01 23:50:44
1563
原创 一文吃透异常处理:Spring Boot 4.x + Security 7.x 核心机制【2026年首发】
文章从源码层面详细解析了 ExceptionTranslationFilter、@ExceptionHandler、ResponseEntityExceptionHandler 等核心组件的初始化过程与协作关系,配以清晰的流程图展示异常从抛出到响应的完整链路。同时提供了大量可直接使用的实战代码,包括全局异常处理器、自定义认证入口点、统一错误响应格式等最佳实践。通过本文,您将全面掌握安全异常与业务异常的分层处理策略,构建健壮的应用异常处理体系。
2026-01-01 12:12:59
681
原创 Spring Boot 4.0 整合Spring Security 7 后的统一异常处理指南
本文详细介绍了Spring Boot 4.0与Spring Security 7中的统一异常处理机制。主要内容包括: Spring Security Filter链的工作原理,重点分析了ExceptionTranslationFilter作为核心异常处理器的作用位置 通过流程图展示了异常处理的完整过程,区分了认证异常和授权异常的不同处理路径 深入解析ExceptionTranslationFilter源码,说明其如何捕获并转换各类异常 解释了为何Controller层异常会被Security过滤器捕获的机制
2025-12-30 22:42:43
1028
原创 Spring Security Session 序列化策略分析
Spring Security在Session序列化策略上经历了从JDK序列化到JSON的演进,但未完全采用JSON主要基于三大考量:1) 安全性需求,Authentication对象需特殊处理敏感凭证;2) 类型完整性,JSON难以处理多态类型;3) 性能与兼容性权衡。实际应用中,推荐使用Kryo序列化方案,它在性能、大小和安全性上取得较好平衡。开发者可自定义RedisSerializer实现,需特别注意确保Token类可序列化并注册相关安全类。
2025-12-30 22:34:08
986
1
原创 Spring Authorization Server 迁移至 Spring Security 7.0:变革与展望
摘要 Spring Authorization Server 已正式迁移至 Spring Security 7.0,将 OAuth2 和 OpenID Connect 支持深度集成到核心模块中。这一架构变革旨在提供更统一的开发体验、提高维护效率并满足社区需求。主要变化包括:包名重构(如从 org.springframework.security.oauth2.server.authorization 迁移至 org.springframework.security.oauth2.core)、配置类简化(使用
2025-12-29 22:38:27
901
1
原创 Spring Boot 升级之HTTP客户端调整:HttpExchange 与 Feign Client 深度对比分析
两种方式都支持通过注解定义 HTTP 客户端接口,但注解的命名和用法有所不同。以下是一个完整的对比示例,展示了两种方式定义同一功能接口的方式。Feign Client 接口定义javaHttpExchange 接口定义java从接口定义来看,两种方式的代码风格非常相似,都支持 RESTful 风格的方法注解。和对应和。值得注意的是,HTTP 接口的注解更加语义化,通过不同的等注解明确指定了 HTTP 方法类型,而 Feign 则统一使用。
2025-12-25 22:40:08
856
原创 Spring Boot 4 升级指南:告别RestTemplate,拥抱现代HTTP客户端
Spring Boot 4 HTTP客户端升级指南 随着Spring Boot 4.0发布,传统的RestTemplate正式被弃用。本文介绍了两种现代HTTP客户端替代方案: WebClient(异步场景首选): 基于响应式编程 非阻塞I/O模型 适合高并发场景 需要添加spring-boot-starter-webflux依赖 RestClient(同步场景推荐): Spring 6.1引入 现代化同步API 更简洁的接口设计 使用spring-boot-starter-web依赖 迁移策略建议分阶段进
2025-12-23 22:59:51
947
原创 SpringBoot版本升级插件:用OpenRewrite 轻松升级 Spring Boot 2 到 4
本文介绍了如何使用OpenRewrite工具将Spring Boot 2升级到4版本。OpenRewrite是一个自动化代码重构工具,能高效处理Spring Boot升级中的包名迁移、配置更新等任务。文章详细说明了升级步骤:首先配置Maven/Gradle插件,通过rewrite:diff预览变更,再执行rewrite:run应用修改,最后手动处理剩余问题。同时提供了升级后的验证方法和常见问题解决方案,如javax到jakarta的包替换、Spring Security配置调整等。文章强调升级前应做好备份和
2025-12-22 22:46:43
1012
1
原创 Spring Security 6.x 迁移到 7.0 的完整步骤
Spring Security 7.0迁移指南摘要:本文详细介绍了从Spring Security 6.x迁移到7.0的完整步骤。7.0版本包含重大变更,包括授权API迁移至AuthorizationManager、配置变更(移除and()方法)、请求匹配标准化等。迁移前需确保满足版本要求:Spring Framework 6.x、Java 17+、Jakarta EE 9+。文档提供了Maven和Gradle的依赖更新配置,以及核心API变更(如AuthorizationManager.check移除)和
2025-12-21 22:22:28
927
原创 Spring Security 5迁移到Spring Security 6说明文档
本文介绍了从Spring Security 5迁移到Spring Security 6/Spring Boot 3的关键步骤。主要内容包括:版本对应关系,Spring Security 6需要Java 17并使用jakarta命名空间;新特性如移除WebSecurityConfigurerAdapter、引入lambda DSL配置;具体迁移过程演示,包括配置类注解更新、WebSecurityCustomizer替代方案等。文章提供了从项目设置到逐步迁移的完整指南,帮助开发者平滑过渡到新版本。
2025-12-20 09:43:58
705
原创 Spring Security 7.0 新特性详解
Spring Security 7.0 带来多项重要更新,包括API优化、安全增强和新功能。核心改进包括移除AuthorizationManager#check方法,全面采用authorize方法;新增Authentication.Builder简化身份验证逻辑;Web安全方面增强会话并发控制功能。SAML 2.0支持多项改进,如规范化的注销响应行为、移除GET请求支持等。该版本要求最低Java 17、Spring Framework 6.x+和Jakarta EE 9+命名空间。升级需注意依赖更新和API
2025-12-20 09:43:08
798
原创 Spring Security 7.0 迁移指南
Spring Security 7.0 迁移指南概述了从6.x版本升级的关键变更。主要更新包括:完全迁移到AuthorizationManager API、移除and()方法、基于PathPatternRequestMatcher的标准化请求匹配、迁移至Jackson 3、OAuth 2.0默认启用PKCE并移除密码授权、SAML 2.0规范合规性改进等。系统要求Java 17+、Spring Framework 6.x和Spring Boot 4.0.x。迁移步骤涵盖依赖更新、核心API变更、XML/Ja
2025-12-20 09:40:24
77
原创 Spring Cloud Gateway为什么要推出 WebMVC 版本?深度解析两大版本的差异与选型
Spring Cloud Gateway 新增WebMVC版本,支持传统Servlet容器部署,解决了WebFlux版本对Netty的依赖问题。WebMVC版本基于Servlet API,兼容现有生态系统,通过JDK21虚拟线程技术实现了接近WebFlux的性能表现。文章对比了两种架构的技术栈、性能指标和适用场景,建议传统企业应用选择WebMVC版本以降低迁移成本,而全栈响应式系统仍适合WebFlux版本。关键区别在于WebMVC支持WAR部署和Servlet过滤器。
2025-12-12 21:32:18
1008
原创 Java反编译工具全面对比:IntelliJ IDEA、JADX、JD-GUI 选型实战指南
日常开发选IDEA内置反编译器;Android逆向必须用JADX;快速查看老项目用JD-GUI。本文提供完整命令行脚本、性能基准、实战案例,一次性解决所有反编译问题。
2025-12-04 22:38:38
871
原创 ClickHouse 学习笔记:单例模式安装部署实战指南
ClickHouse 是由俄罗斯「Yandex」公司开源的列式存储数据库,专门用于 OLAP(在线分析处理)场景。本笔记记录了 ClickHouse 单例模式的完整安装部署流程,帮助开发者快速搭建分析型数据库环境。
2025-11-30 13:47:28
1403
原创 慎重选择微服务架构:一个真实案例的深度反思
本文通过一个真实的"伪微服务"案例,揭示了盲目追崇微服务架构的风险。技术选型没有银弹,适合自己的才是最好的。
2025-11-30 12:15:32
630
原创 当AI开始写代码: 技术洪流中的工匠沉思
AI编程工具大幅提升了代码开发效率和质量,却让程序员陷入情感矛盾。文章通过对比从前手工调试的"亲密掌控感"与当下AI编程的高效标准化,揭示了技术进步带来的心理落差。作者指出工匠精神的本质并非工具本身,而在于如何运用工具:AI能生成代码却无法理解业务场景、权衡架构哲学或体会用户体验。未来程序员或将转型为"代码策展人",在技术精湛之上赋予代码人文温度,使工匠精神以新的形式延续。
2025-11-16 23:27:09
441
OpenJDK8U-jdk_x64_linux_hotspot_8u232b09.tar.gz
2019-12-30
idea sbt更新资源库
2017-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅