自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 高并发下的性能杀手:错误使用Redis分布式锁的订单处理陷阱

文章摘要: 公司订单系统因全局锁设计不当,导致核心接口性能急剧下降,TPS从8,000暴跌至200,响应时间激增至8秒。问题根源在于订单处理流程被全局锁包裹,锁持有时间过长,引发Redis CPU占用率100%、数据库连接池耗尽等问题。通过分析事故原因,提出四大优化准则:锁粒度拆分、异步处理解耦、缓存优化策略和防御性编程。优化后,系统QPS提升至7,500,响应时间降至210ms,Redis CPU占用率降至35%,数据库连接池等待时间减少96%。最终,通过合理使用分布式锁,系统在高并发场景下实现稳健运行,

2025-05-09 10:17:26 251

原创 Spring AI 系列——使用大模型对文本内容分类归纳并标签化输出

利用大语言模型(LLM)实现文本分类,核心思想是通过预训练模型理解输入文本的语义,并将其映射到预先定义好的分类标签。在这个过程中,我们借助 Spring AI Alibaba 提供的能力,使用阿里云 DashScope 平台的大模型接口来完成文本分类任务。在BUSINESS,SPORT,OTHER;本篇博客详细介绍了如何使用大模型进行文本分类,并结合 Spring Boot 和 Spring AI Alibaba 框架实现了完整的解决方案。

2025-05-09 09:40:12 509

原创 Spring AI系列——大模型响应结果结构化输出

然而,大模型的输出通常是文本形式,这在处理结构化数据时存在一定的局限性。为了更好地利用大模型的能力,我们需要将大模型的响应结果结构化。通过本文,我们详细介绍了大模型响应结果结构化的原理、架构、技术实现、参数配置和测试验证。我们的方案能够有效地将大模型的响应结果结构化,为后续的数据处理和分析提供了便利。大模型响应结果结构化的原理是通过定义特定的输出格式,引导大模型生成符合该格式的响应。测试结果表明,我们的方案能够正确地将大模型的响应结果结构化,并且在各种情况下都能正常工作。

2025-05-08 14:56:13 850

原创 Spring AI系列——大模型驱动的自然语言SQL引擎:Java技术实现详解

在现代数据处理场景中,用户通常希望通过自然语言与数据库交互,而无需编写复杂的SQL语句。这种需求推动了大模型在自然语言处理(NLP)和数据库查询生成领域的应用。本文将详细介绍如何使用大模型实现自然语言查询关系型数据库SQL的功能,包括技术原理、架构设计、代码实现以及参数配置。大模型通过理解用户输入的自然语言问题,并将其转换为对应的SQL查询语句,从而实现对关系型数据库的查询操作。

2025-05-06 10:20:19 790

原创 通过API网关防御重放攻击:技术方案与实战验证

中小型系统:时间戳+Nonce组合方案金融级系统:三重校验+硬件加密卡IoT场景:设备指纹+轻量级时间窗口。

2025-04-30 16:55:03 909

原创 Map系列之ConcurrentHashMap源码分析:高并发场景下的性能密码

协程支持:Project Loom对并发集合的影响硬件级优化:利用C++20原子操作提升性能云原生适配:Kubernetes环境下的自动扩缩容策略。

2025-04-30 16:33:27 546

原创 Set系列之HashSet源码分析:原理剖析与实战对比

fill:#333;color:#333;color:#333;fill:none;YesYesNoYesNo需要唯一性集合?是否需要排序?TreeSet需要保持插入顺序?HashSet。

2025-04-30 14:50:05 967

原创 Queue系列之SynchronousQueue源码分析:原理剖析与实战对比

维度优势局限吞吐量无锁设计,极限性能吞吐受限于线程数延迟纳秒级直接传递无法缓冲突发流量内存O(1)常量占用无法保存历史数据。

2025-04-30 14:43:54 894

原创 AI驱动开发革命:程序员如何用 DeepSeek 实现效率跃迁

本文的每个案例都经过真实项目验证,所有代码片段均可直接复制到你的IDE中运行。每日三练:用自然语言描述3个日常编码任务,尝试用DeepSeek实现Prompt实验:在Git提交信息中记录优化前后的Prompt对比文档自动化:为最近编写的代码生成API文档并提交到团队Wiki掌握这些实战技巧,你将在3周内:• 减少30%的重复性编码时间• 文档编写效率提升2倍• 代码质量指标(圈复杂度、测试覆盖率)显著改善立即打开你的IDE,输入第一个自然语言指令,开启智能开发新纪元!

2025-04-30 13:29:54 758

原创 Spring AI应用系列——基于OpenTelemetry实现大模型调用的可观测性实践

本文详细介绍了如何在 Spring AI Alibaba 生态中引入可观测性能力,结合 OpenTelemetry 实现了完整的 Trace 数据采集与导出机制。通过合理配置抽样率、启用上下文观测,可以显著提升系统的可观测性和运维效率。

2025-04-30 11:26:19 872

原创 Spring AI应用系列——基于ARK实现多模态模型应用

是一个基于 Spring AI 和 Alibaba ARK 平台的多模态模型应用示例。它集成了聊天、图片生成、文本向量等多种模型能力,并通过 REST 接口提供服务。本文详细介绍了的实现原理、架构设计以及关键参数的配置和使用方法。通过具体的代码示例和测试验证,我们验证了项目的功能正确性和稳定性。希望本文能为读者理解和应用 Spring AI 和 Alibaba ARK 平台提供有价值的参考。

2025-04-30 10:24:20 861

原创 Spring AI应用系列——基于Alibaba DashScope实现功能调用的聊天应用

随着人工智能技术的发展,聊天机器人逐渐成为企业与用户交互的重要工具。本文将介绍如何使用Spring AI框架结合Alibaba DashScope插件,快速构建一个支持功能调用(如翻译、天气查询等)的聊天应用。我们将从原理、架构设计、参数分析以及测试验证结果对比四个方面进行详细讲解。通过本文的介绍,我们可以看到Spring AI框架结合Alibaba DashScope插件的强大功能。无论是简单的翻译服务还是复杂的天气查询,都可以通过简单的配置和代码实现。

2025-04-29 14:45:44 535

原创 Spring AI应用系列——基于Alibaba DashScope的聊天记忆功能实现

本项目通过Spring AI框架和Alibaba DashScope API实现了聊天记忆功能,并支持三种存储方式。用户可以根据实际需求选择合适的存储方案。未来可以进一步优化存储策略,例如结合Redis和MySQL实现冷热数据分离,提升系统性能和扩展性。

2025-04-29 14:19:04 1314

原创 深入理解Java线程池:从原理到实战的完整指南

在并发编程领域,线程池是Java开发者必须掌握的核心组件。据统计,不合理使用线程导致的资源耗尽问题占生产环境故障的35%以上。本文将从底层原理出发,结合真实业务场景,深入剖析线程池的核心机制,并对比分析Executors工厂类的优劣,帮助读者构建高并发系统的基石。

2025-04-28 16:25:40 782

原创 MCP协议与智能体开发:构建动态协作AI系统的基石

在人工智能快速发展的今天,单一模型的能力边界正在被不断打破,但多智能体协作仍面临严峻挑战。传统AI系统往往采用静态部署模式,跨Agent协作时存在上下文传递效率低、资源浪费严重、动态适应能力差等问题。例如,在自动驾驶车队协同避障场景中,传统RPC协议需反复传输全量传感器数据,导致端到端延迟增加40%以上。其核心在于通过上下文感知的动态资源共享机制,实现跨Agent的智能协作。

2025-04-28 13:27:46 735

原创 Spring AI应用系列——基于DeepSeek客户端的Chat应用

功能:通过自定义提示语,调用DeepSeek模型生成海盗名称。参数分析:设置为0.7,平衡生成结果的创造性和稳定性。prompt:输入的提示语,决定了生成内容的主题。通过本文的分析,我们深入探讨了基于DeepSeek客户端的聊天应用的实现细节。中的参数设计合理,能够满足不同场景下的需求。单元测试结果表明,该应用具有良好的稳定性和可靠性。未来,我们可以通过进一步优化参数配置和扩展功能,提升应用的用户体验。

2025-04-28 11:00:11 557

原创 Spring AI应用系列——基于DashScope平台自主Model配置的Chat应用

特色:开发者可编程自定义 LLMs 参数,覆盖默认配置。参数如控制文本多样性、影响文本质量、调整文本随机性,赋予开发者灵活掌控对话风格的能力。综上,本文全方位拆解基于 DashScope 平台的 Spring AI Chat 应用,深入解读核心功能与参数配置。单元测试的加持,全方位验证控制器可靠性与稳定性,为开发者呈上详尽开发指南与实用范例,助力高效、优质 Chat 应用开发。

2025-04-28 09:41:42 463

原创 Spring AI应用系列——基于DashScope平台的Chat应用

功能: 支持自定义 Advisor,增强聊天功能。应用场景: 多轮对话、个性化推荐等复杂场景。

2025-04-27 11:31:33 366

原创 RocketMQ之NameServer

NameServer 是专为 RocketMQ 设计的轻量级名字服务,它的源码非常精简,八个类 ,少于 1000 行代码。这篇文章, 笔者会从基础概念、Broker 发送心跳包、NameServer 维护路由、Zookeeper vs NameServer 四个模块揭秘名字服务的设计精髓。

2023-10-04 12:58:50 1206 1

原创 一个利用递归算法解决高效率的随机数生成的问题

近一段时间 在面试过程中,问了一些资深架构师一个算法题,其实我觉得不难,但是出乎意外的是,没有一个人有一个好的方法和思路。今天晚上闲来无事,我就自己写了一个小的demo,算是一个分享吧。题目使用随机算法产生一个数,要求把1-1000W之间这些数全部生成。(考察高效率,解决产生冲突的问题)问题分析其实这个题的重点是随机数、高效率,和解决冲突,很多人,一上来,就是redis的set,java的set来做去重,多线程的方式来并发执行,balabala,但是真正从理论上讲,这些人讲的,也都算可行,毕竟.

2021-11-23 22:15:27 1159

原创 Office转Pdf的Java实现

背景项目中需要在线预览文档,且文档格式有word、excel和ppt等多种Office格式的所以需要一中能在linux上运行的在线转换工具,经过github的查找,发现LibreOffice的方式,以下介绍以下具体方法准备环境安装LibreOfficeyum install libreoffice文件有点大,需要安装一段时间安装字体**字体一定需要安装,否则会出现乱码问题**1、下载字体yum groupinstall "fonts"2、修改字符集vim /etc/loc

2021-08-22 23:38:08 712

原创 Mybatis——关于实体构造函数与Mybatis字段映射的坑

现象今天一位同事找我看一个很奇怪的问题:执行一个单表的查询语句,结果老是报字段类型不匹配的错误,错误日志如下:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: Err

2021-01-07 16:12:49 2678 2

原创 使用FRP作为内网穿透服务

背景需要远程访问办公环境的内网服务器,原来使用的是花生壳之类的软件,但是存在很多不确定性,最近研究了一下开源内网穿透软件frp,总结了一些心得,分享一下。条件一台具有公网IP的服务器,可以购买一台云服务器内网服务器若干,本次以一台为例frp软件,server端和client端nginx服务,作为多个http服务的转发目的实现mysql的访问实现redis的访问实现多个http服务的访问,因为frp转发http的端口,只能设定一个,所以需要一个nginx做所有http服务的转发,可以

2020-12-21 15:08:39 2560

原创 Docker容器环境下使用JVM监控分析工具JMX和Jstatd

软件准备docker-compose1.24java8配置docker-compose文件修改在JAVA_OPTS中增加以下配置-Djava.rmi.server.hostname=`192.168.XX.XX` -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.rmi.port=`7098` -Dcom.sun.management.jmxremote.port=`7099` -Dcom.sun.management.

2020-11-24 11:48:21 2031 1

原创 Docker-compose之Redis Cluster集群

概述Redis作为基于键值对的NoSQL数据库,具有高性能、丰富的数据结构、持久化、高可用、分布式等特性,同时Redis本身非常稳定,已经得到业界的广泛认可和使用。在Redis中,集群的解决方案有三种主从复制哨兵机制ClusterRedis Cluster是Redis的分布式解决方案,在 3.0 版本正式推出。集群方案的对比1. 主从复制同Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,读写分离

2020-11-18 14:41:58 3189 3

原创 CentOS7防火墙设置

防火墙开关设置关闭firewall:systemctl stop firewalld.service #停止firewall禁用firewallsystemctl disable firewalld.service #禁止firewall开机启动启用firewallsystemctl start firewalld.service #启用firewall端口管理开启7001-7006端口firewall-cmd --zone=public --add-port=7001-7006/

2020-11-18 11:14:10 204

原创 Docker-使用和管理本地镜像

登录镜像仓库以下以腾讯镜像仓库为例docker login -u 1000023424528 -p 123456 ccr.ccs.tencentyun.com1000023424528 : 镜像仓库的账号123456 : 镜像仓库的密码ccr.ccs.tencentyun.com :镜像仓库的地址给镜像打tagdocker tag 0e5574283393 ccr.ccs.tencentyun.com/franks/mysql:5.7 推送镜像docker push ccr.

2020-11-18 10:35:20 758

原创 Redis6新特性

Redis6新特性之前一直听别人说redis6出了,还实现了多线程,以后面试官问redis是单线程还是多线程这样的问题肯定要涨10个百分点,今天就结合antirez的博客和github文档看看redis到底实现了什么新技能。先看下antirez的概览:许多新的模块API。更好过期算法。SSL支持。ACL支持。新的RESP3协议。客户端缓存。多线程I/O。副本的无盘复制。redis-benchmark支持和redis-cli改进。Systemd 支持重写。redis集群代理的发布。

2020-11-18 10:02:32 5506 2

原创 HashMap红黑树原理分析

近期学习了 HashMap 实现原理,这篇咱们了解一下红黑树的设计,相比 jdk1.7 的 HashMap 而言,jdk1.8最重要的就是引入了红黑树的设计,当冲突的链表长度超过 8 个的时候,链表结构就会转为红黑树结构。01、故事的起因JDK1.8 最重要的就是引入了红黑树的设计(当冲突的链表长度超过 8 个的时候),为什么要这样设计呢?好处就是避免在最极端的情况下冲突链表变得很长很长,在查询的时候,效率会非常慢。红黑树查询:其访问性能近似于折半查找,时间复杂度 O(logn);链表查.

2020-10-16 14:46:45 4759 3

原创 Docker-compose搭建Jenkins

JenkinsJenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins功能包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。准备环境笔者使用的是云服务器,配置仅1C1G,持续集成服务,一般并发要求不高,各个企业一般不会太频繁使用,稍微低一些的配置即可满足要求。Centos7.*安装好Docker环境,version 19.03.12安装好docke

2020-10-15 16:00:24 1683

原创 设计模式——观察者模式

public class JdkDemo { public static void main(String[] args) { HashMap map = new HashMap(); for (int i = 0; i < 3000; i++) { map.put("key"+(i),"123"+i); } Set<Map.Entry> entrySet = map.entrySet();

2020-10-15 15:18:00 171 1

空空如也

空空如也

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

TA关注的人

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