自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (10)
  • 收藏
  • 关注

原创 基于Rsyslog+Kafka+Flink+Clickhouse的高性能日志采集、分析、汇聚存储方法

我们要首先解决日志文件存储和分析的问题,鉴于Nginx日志数据量大的特点,我们必须选择一种功效的分析工具(能流式分析更好)和支持大数据量写入的数据库,经过各种Baidu和谷歌,最终定型为:Kafka + Flink + Clickhouse。

2022-01-08 23:55:43 2341

原创 高并发系统负载均衡与实时监控的实用方案

Nginx+ELK是当下高并发系统负载和监控的成熟方案,网上充斥着各种教程和最佳实践。可要在生产环境部署还是会面临着不小的挑战,生产环境首要满足的条件就是高可用, Nginx至少两个节点,如果后台服务多、并发高、访问接入点多情况,那单nginx节点的数量就会很可观;Elasticsearch要集群部署至少三个节点,对内存的要求也不低;Logstash和日志需要本地采集处理,多少个日志采集点就需要部署多少套,对内存要求不低。综上,这个方案俨然就是“吃机”大户,不但主机资源采购成本高,运维更具技...

2021-12-24 01:06:31 2693 1

原创 【架构选型】中小型软件公司微服务架构选型建议

笔者从事发大水我的精力,从微服务开发。微服务的优势在增量微服务的特性sping cloud alibaba huawei的一些看法

2020-12-18 22:33:48 1703 1

原创 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 581

原创 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 892 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 884

原创 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 670

原创 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 753

原创 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 40

原创 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 900

原创 Java反编译工具全面对比:IntelliJ IDEA、JADX、JD-GUI 选型实战指南

日常开发选IDEA内置反编译器;Android逆向必须用JADX;快速查看老项目用JD-GUI。本文提供完整命令行脚本、性能基准、实战案例,一次性解决所有反编译问题。

2025-12-04 22:38:38 831

原创 ClickHouse 学习笔记:单例模式安装部署实战指南

ClickHouse 是由俄罗斯「Yandex」公司开源的列式存储数据库,专门用于 OLAP(在线分析处理)场景。本笔记记录了 ClickHouse 单例模式的完整安装部署流程,帮助开发者快速搭建分析型数据库环境。

2025-11-30 13:47:28 1377

原创 慎重选择微服务架构:一个真实案例的深度反思

本文通过一个真实的"伪微服务"案例,揭示了盲目追崇微服务架构的风险。技术选型没有银弹,适合自己的才是最好的。

2025-11-30 12:15:32 620

原创 当AI开始写代码: 技术洪流中的工匠沉思

AI编程工具大幅提升了代码开发效率和质量,却让程序员陷入情感矛盾。文章通过对比从前手工调试的"亲密掌控感"与当下AI编程的高效标准化,揭示了技术进步带来的心理落差。作者指出工匠精神的本质并非工具本身,而在于如何运用工具:AI能生成代码却无法理解业务场景、权衡架构哲学或体会用户体验。未来程序员或将转型为"代码策展人",在技术精湛之上赋予代码人文温度,使工匠精神以新的形式延续。

2025-11-16 23:27:09 433

原创 AI 编程工具全景分析与 Claude Code 配置 MiniMax - m2 模型指南​

摘要:AI编程工具主要分为三类:IDE插件(如GitHub Copilot)擅长代码补全和局部优化但受限于IDE;独立工具(如Tabnine)功能全面但学习成本高;命令行工具(如ClaudeCode)适合批量处理和自动化但操作门槛较高。其中ClaudeCode可通过配置环境变量连接MiniMax-m2模型,执行高效的项目级操作。开发者应根据项目需求选择合适工具,兼顾功能特性和使用场景,以最大化开发效率。

2025-11-11 23:13:38 1185 2

原创 AI时代程序员生存指南:从历史镜鉴到行动路线图

AI时代对程序员群体构成"生存危机"与"重生机遇"的双重挑战。报告通过工业革命纺织工人的历史镜鉴,揭示技术代差、生产关系滞后和虚假人力成本优势是结构性失业的三大风险。当前AI已替代20-30%初级岗位,但掌握AI工具的高级人才薪资增长150%。

2025-11-09 18:20:30 965

原创 VS Code秒变智能IDE :Claude Code For VS Code 插件配置MiniMax-M2

摘要:本文介绍了在VSCode中配置ClaudeCode扩展使用MiniMax-M2模型的步骤:1)安装扩展;2)设置模型为MiniMax-M2;3)在settings.json中配置API信息,包括从MiniMax官网获取的API Key及各类模型参数设置。完整配置包含base URL、认证令牌、超时设置等关键参数,配置完成后即可开始使用该AI编程助手功能。

2025-11-08 22:16:11 2566

原创 Spring AI正当时,Java从此也可以开发AI应用了

然而,在OpenAI的ChatGPT等创新的推动下,生成式AI最近取得了进展,通过HTTP普及了与预训练模型的交互。虽然Document可以表示广泛的内容,例如整个文件,但RAG方法将内容分成更小的部分,以便包含在提示符中。有了这个可移植的API,你可以一开始瞄准一个AI聊天模型,比如OpenAI,然后很容易地切换到另一个AI聊天模型的实现,比如Amazon Bedrock的Anthropic model。由于需要专门的硬件,重新训练模型,特别是那些具有数十亿参数的模型是具有挑战性的。

2024-05-20 22:01:03 1236 1

原创 分布式事务我们真的需要么?

分布式事务,顾名思义,是指涉及两个或多个分布式资源(如数据库、消息队列等)的事务操作,要求这些操作要么全部成功,要么全部失败,以此保证数据的一致性。通过设计独立的服务边界,尽量减少跨服务的事务操作,利用API幂等性、事务日志和事件溯源等技术,可以在不引入分布式事务的情况下,实现业务逻辑的一致性。尽管分布式事务在某些关键场景下不可或缺,如金融交易系统,但大多数日常业务场景下,通过采用最终一致性模型、优化系统架构设计、实施有效的补偿机制,我们往往能避免分布式事务带来的复杂性和性能开销。

2024-05-18 22:06:23 739

原创 一个被忽略的日志采集框架Rsyslog

Rsyslog在日志收集和基础路由方面表现出色,而Logstash、Fluentd、Graylog和Splunk更侧重于日志的处理、分析和可视化。说起日志采集框架,大家动辄使用Logstash和Fluentd, 却忽略了Linux系统内置的日志框架Rsyslog,而且日常大家的应用服务都是部署在Linux服务器,可以减少三方组件的依赖。Rsyslog、Logstash、Fluentd、Graylog、Splunk、Filebeat和Metricbeat都是日志管理和分析工具,各自有其独特的优势。

2024-05-18 21:55:30 1386

原创 关于K8S中JVM性能的一些分析

【代码】关于K8S中JVM性能的一些分析。

2024-05-17 23:54:01 840

原创 如何使公共组件与Springboot 2/3及不同Java版本保持兼容

对于依赖HttpServletResponse的公共组件或工具,建议逐步迁移到使用ResponseEntity,以确保对Spring Boot 2、3以及不同Java版本(如JDK 8和11+)的支持。这样,你无需根据不同的环境编写分支代码,从而简化了维护工作。然而,随着Servlet 5.0及更高版本的发布,javax.servlet.http.HttpServletResponse已被移到jakarta.servlet.http.HttpServletResponse命名空间下。

2024-05-17 23:46:19 589

原创 你程序中的异常用对了么? 一个属性大幅减少系统的异常堆栈信息

因此可以在你自己的工程中,通过覆写RuntimeException的所有构造方法,避免一些无效的堆栈打印。如果启用了异常抑制,那么在一个异常(称为“主异常”)抛出时,如果另一个异常(称为“被抑制的异常”)也发生,则被抑制的异常会被添加到主异常的“抑制异常”列表中。控制台上打印着一堆异常堆栈信息,这不但覆盖了有价值的日志,也大大降低了程序的性能,而且这些错误堆栈信息自身的价值很小。,则可以在异常对象中保存空的堆栈跟踪信息,从而减少填充异常对象所需的空间和时间。,则表示不保留堆栈跟踪信息。

2023-12-05 17:30:00 339

原创 Vue 组件加载 WASM 模块的最简方法

Vue 组件加载 WASM 模块的最简方法。基于wasm-pack构建的wasm要集成到vue工程中,总是遇到这样那样的错误。本文讲解了vue集成wasm的最简方法,亲测有效

2023-06-19 23:49:24 2811

原创 Maven构建时告警提醒的处理

Maven构建时的提醒信息的处理。有关详细信息, 请使用 -Xlint:unchecked 重新编译。[WARNING] XxFilter.java: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

2023-03-24 22:45:14 4946

原创 关于ClickHouse字典表在分布式表中使用的问题

Clickhouse的字典表在分布式表中进行查询操作时,会报列不存在(THERE_IS_NO_COLUMN)的问题。

2022-12-29 00:09:46 1657

原创 Mac中常用命令(持续更新)

1. 文本内容替换Mac中的这个命令与linux有点不同,它多了一个备份参数# 需要备份文件sed -i '.bak' 's/old_words/new_words/g' a.txt# 不需要备份文件sed -i '' 's/old_words/new_words/g' a.txt

2022-05-01 09:37:59 1303

原创 开源症状自诊微信小程序的设计方案

大学做毕业设计时,开发过一款根据症状自我评估病因的“家庭医生”。十几年过去了,当年在宿舍边写查资料边写代码的情景还时常浮现现在脑海,时过境迁,Delphi的辉煌已成历史,如今由小程序驱动当年的数据库,让尘封毕设的“家庭医生”重获新生。疫情当下,献给那些封控在家,不方便去医院的人,用这样一款小程序对症状进行自我评估,做到心中有数。

2022-04-29 18:54:55 1451

原创 brew安装python2

Mac homebrew 成功安装 了puthon2

2022-04-27 16:45:12 4548

转载 【转发】75%新项目都可以“无脑”选择单体架构

75%新项目都可以“无脑”选择单体架构

2022-02-26 21:23:02 136

原创 Nginx配置相关的问题

1. Nginx代理丢失非80端口的问题如果Nginx采用非80端口进行代理时,会丢失端口,可通过如下方式避免此问题:location /api { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://127.0.0.1:8080;}...

2022-01-24 23:21:17 2502

原创 献给2021年技术选型中被我否定的那些技术

近几年来,我的团队构建了部门最大规模的线上平台,也是部门迄今最成功的基于微服务架构的系统。每当做部门技术分享,我说的最多的是那些被我否定的技术框架,分析的核心问题是这些技术框架在解决什么问题,我们真的需要么? 就我的实践来讲,真的没什么可讲的,毕竟最近两年一直在对技术架构做减法。第一个否定的是ELK架构,平台上线之初,我认真的研究了一下ELK整个技术体系,并进行线上验证,存在如下几个问题,是我团队无法解决的:Elasticsearch的插入效率问题,每秒几百条的速度是个硬伤。 支撑系统3000TPS

2022-01-16 23:16:48 1171

原创 实用Linux命令大全【持续补充中】

持续积累的常用Linux命令

2022-01-14 08:30:21 1396

原创 基于Rsyslog的日志文件采集办法

近几年笔者在生产环境中,很多日志处理场景中都适用了Rsyslog,在基于UDP的分布式日志汇聚、日志文件采集方面都有出色的发挥,“The rocket-fast system for log processing” 真不是吹的。在Rsyslog的官方文档中,发现Rsyslog已经提供了文件(imfile)输入方法,毕竟它就在系统中,拿来就用,还选什么 filebeat,logstash。

2022-01-10 23:09:05 1346

原创 【Mysql数据库系列】是时候升级到Mysql8 Innodb Cluster了

1)Mysql在8x版本的Innodb集群安装优化得当,避免了一些不必要的重启 (比如在5.7版本中dba.configLoaction() 后,必须要重启节点生效) 。2)Mysql8x的组复制更加智能、可靠,支持基于Binlog的GTID模式和数据拷贝模式,这个特性在把单节点或主从模式改为集群模式的时候,免去了手动同步数据,而且非常高效。3)快速在线添加列。由腾讯互娱DBA团队贡献的快速在线加新列功能,非常实用。笔者运维的系统很多表的规模都在千万级别,要在以前必须通过添加扩展表或从表的方式实现,现

2022-01-09 11:48:34 1068

原创 [2021年终总结之Java篇] 与Java朝夕相处的这些年

虽然Java当前存在的问题,任然是学习编程的首选语言。 Java只是一种编程工具,程序员真正要学习的发现问题、分析问题和解决问题的能力。作为程序员应该具备:始终保持一种心境,遇到Bug还会废寝忘食,解决问题后的喜悦还是那么可爱;始终有种勇气,敢于否定一切;始终有个追求,把繁琐留给自己,让用户体验更加舒心。

2021-12-29 22:58:39 360

原创 Mac用命令行在访达中打开指定目录

Mac用命令行快速在访达中打开指定目录

2021-11-23 13:05:54 4463 3

原创 【架构选型】就微服务特性而言Kubernates可以代替Spring Cloud么?

Spring Cloud 脱去Netflix公司的系列微服务组件的外衣,基本就是Spring Boot,那么,给Spring Boot 换装Kubernetes,又是一番怎样的景象?

2021-02-16 11:50:26 1008

原创 CentOS7下Mysql安装与主从 (GTID) 集群搭建详细说明

不可否认Mysql InnoDB Cluster 模式运维具有很高的难度,后期我会逐步的分享相关的运维经验。如果团队中力量相对薄弱,又有高可用的需求,那么Mysql主从是一个不错的选择 。 下文有Mysql5.7.23为例讲解, 本博文讲述的步骤同样适用于Mysql8 和 Mysql 5.7 的其他版本。 本文分四个部分进行讲解:环境初始化 Mysql数据库安装 主从集群搭建一、环境初始化1. 修改系统最大文件打开数,直接执行下列脚本即可说明: 数据库服务器建议都要调整此...

2020-12-26 17:50:36 289 4

原创 【Mysql数据库系列】CentOS7下Mysql安装与Mysql Cluster集群搭建详细说明( Innodb Cluster)

一、环境准备1. 修改系统最大文件打开数,直接执行下列脚本即可说明: 数据库服务器建议都要调整此参数# 可参考 https://blog.youkuaiyun.com/robin90814/article/details/86705155cat <<EOF >>/etc/security/limits.conf* soft nofile 65535* hard nofile 65535EOF验证:ulimit -n2. 卸载相关mysql和mariad

2020-12-22 00:12:53 1022

最新canvg.js 将SVG转换成Png(1.4)

将SVG转换成PNG的JS类库,只支持html5

2016-03-07

Spark快速大数据开发Demo

收集的Spark快速大数据开发Demo,非常不错的学习资料。

2017-11-24

Postman Restful API测试神器

Postman Restful API ,AJAX 测试神器。web开发必备工具

2017-11-29

jquery-jsonp-master.zip

终于找到了一个好用的jquery-jsonp插件,可以完美的支持jsonp请求。可以完美的支持jsonp请求。

2017-11-24

基于alpine基础镜像的AdoptOpenJDK镜像

基于alpine基础镜像的AdoptOpenJDK镜像,添加了对tzdata的支持,并默认支持东八区。

2019-09-20

OpenJDK8U-jdk_x64_linux_hotspot_8u232b09.tar.gz

AdoptOpenJDK将构件托管于 GitHub release 之上,国内下载速度极其缓慢,国内用户可以使用我搭的简单的下载站来下载 AdoptOpenJDK 构建。

2019-12-30

idea sbt更新资源库

国内大家肯定遇到idea 更新sbt相关插件慢的问题。通过此资源库配置文件,可以大大的提高下载速率。把下载的文件直接放到 当前用户目录的.sbt目录下,如: ~/.sbt/repositories 通过如下配置效果更好: [repositories] local repox-maven: http://repox.gtan.com:8078/ repox-ivy: http://repox.gtan.com:8078/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

2017-11-25

MicrosoftEdgeSetup.exe

最新版的Edge浏览器基于chrome内核,性能不错,国内下载 Microsoft Edge浏览器太慢,干脆在这里分享一下。

2020-09-09

SBT Idea插件

在线安装sbt总是失败,只好收藏了一个离线安装包。帮助大家快速安装

2017-11-24

Spark快速大数据分析

这本书是一本不错的Spark入门教程,原理浅显易懂,demo提供了多语言版本。

2017-11-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除