自定义博客皮肤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)
  • 收藏
  • 关注

原创 对话即服务:Spring Boot整合MCP让你的CRUD系统秒变AI助手

随着人工智能的飞速发展,大语言模型(LLM)正在革命性地重塑用户与软件的交互范式。想象一下这样的场景:用户无需钻研复杂的API文档或者在繁琐的表单间来回切换,只需通过自然语言直接与系统对话——“帮我查找所有2023年出版的图书”、“创建一个新用户叫张三,邮箱是zhangsan@example.com”。这种直观、流畅的交互方式不仅能显著降低新用户的学习曲线,更能大幅削减B端系统的培训成本和实施周期,让企业应用变得更为简单和高效。这正是协议在应用层面所带来的价值体现。

2025-03-20 12:50:08 1893 21

原创 【分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取

有加锁自然就有解锁,本篇则将围绕锁的释放锁Lua脚本进行深入剖析,另外,还将对阻塞和非阻塞两张方式分别如何获取锁进行比较。

2025-03-17 16:08:35 438

原创 【分布式锁通关指南 07】源码剖析redisson利用看门狗机制异步维持客户端锁

在上篇中,我们梳理了redisson的可重入锁的加锁流程,而加锁必然就会有锁续期的问题,那么看门狗机制是维持锁续期的关键。因此,在本篇中我们将剖析redisson中的看门狗机制究竟是如何实现的。

2025-03-13 18:24:30 254

原创 Manus值得追捧吗?通过开源方案实测引发的思考

继DeepSeek在春节期间引爆大模型领域后,近期Manus又以"AI打工人"之称成功"破圈"。在中文互联网上,随处可见关于它的话题,从某鱼上卖到上万元的邀请码,到科技圈内外的热烈讨论。技术爱好者、内容创作者乃至普通用户都在争相体验这款号称能自动完成知识工作的AI助手。然而热潮之下,其真实能力与技术壁垒几何?作为技术从业者,我决定绕过高昂门槛,通过开源方案验证Manus的实际表现,希望提供一个基于实践的理性参考。

2025-03-11 15:39:50 791

原创 Spring Boot 3 整合 MinIO 实现分布式文件存储

文件存储已成为一个做任何应用都不可回避的需求。传统的单机文件存储方案在面对大规模数据和高并发访问时往往力不从心,而分布式文件存储系统则提供了更好的解决方案。本篇文章我将基于Spring Boot 3 为大家讲解如何基于MinIO来实现分布式文件存储。

2025-03-05 09:50:19 1253

原创 【分布式锁通关指南 06】源码剖析redisson可重入锁之加锁

在上篇中,我们基于spring boot整合redisson实现了分布式锁,接下来我会带领大家花一些时间来学习redisson如何实现各种锁,所以我们需要先从github上下载它的源码,本篇则先从可重入锁的相关实现开始来为大家做讲解。

2025-03-04 11:25:57 351

原创 【分布式锁通关指南 05】通过redisson实现分布式锁

一句话总结-redis的高性能客户端,我们选择它是因为它内部已经封装好了很多锁的实现,详细介绍可以通过redisson的Github主页来查看。

2025-02-28 16:18:41 568

原创 【分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理

在03篇中我们讲解了lua脚本的使用(Ps:如果你没跳过的话),目前我们通过api也好,lua脚本也好,已经基于redis实现了分布式锁,但看似完美的它其实还存在一些细节问题,本章节将会带领大家去探索这些细节并完善我们的分布式锁,并且在本章中还会为大家讲解一下“红锁”的算法原理。那么话不多说,开始我们今天的学习。

2025-02-27 10:34:15 869

原创 Spring Boot 3 整合 Spring Cloud Gateway 工程实践

当前微服务架构已成为中大型系统的标配,但在享受拆分带来的敏捷性时,的复杂度也呈指数级上升。因此,我们需要构建来为系统“保驾护航”。本文将会通过一个项目(核心模块包含共 3 个微服务),采用注册中心与配置中心),分享如何构建一个微服务网关。

2025-02-24 15:50:15 1421

原创 DeepSeek全链路开发指南:从零搭建智能问答系统到API无缝对接【内含知识库实战】

DeepSeek凭借其强大的推理能力形成了破圈效应。当其他大模型还在知识库问答的泥潭里挣扎时,DeepSeek-R1通过,将复杂问题的解决准确率提升了37.6%。这直接导致了一个有趣现象:原本属于NLP工程师专属玩具的大模型,开始频繁出现在运维告警系统、电商客服工单甚至医院电子病历处理流程中。如果你也想接入DeepSeek开发企业级AI应用,那么——别划走!这篇可能是全网最干的DeepSeek实操指南👇✔️ 被知识库折腾到秃头的程序员✔️ 急需交付AI应用证明价值的团队。

2025-02-22 21:46:13 665

原创 【分布式锁通关指南 03】通过Lua脚本保证redis操作的原子性

官方介绍它是一种轻量小巧的脚本语言,设计的目的是为了嵌入应用程序,从而为应用程序提供灵活的扩展性和定制功能。redis支持嵌入Lua脚本,因此可以很方便地使用。安装过程很简单,本文不做赘述,直接移步官网下载即可,如遇到问题,善用一下你的搜索引擎即可。

2025-02-20 10:30:57 1080

原创 【分布式锁通关指南 02】基于Redis实现的分布式锁

在01篇文章中,我们深入探讨了单机锁的多种实现方式,并相信各位读者已经对它们有了较为全面的了解。然而,随着我们对单机锁的深入了解,不难发现它们所固有的一些局限性。因此,从本篇开始,我们将开始探讨分布式锁的相关内容。

2025-02-19 09:59:59 957

原创 ✨️ 2024年终总结 - 23岁正是折腾的年纪 从开发到产品 | 日本旅行 | 捣鼓项目 | 技术写作与分享 | 五月天

相比于技术类分享,我其实不太擅长写年终总结,比如这篇写到这里的第一反应是:哥的模块化结构处理的真好啊,哈哈。但我又觉得这类型的文章还是有写写的必要,就像这次写的时候回看23年写的总结,有一种在看过去的自己感觉。最后引用一下坂本龙一的一句话送给大家:真实地活下去,不要忘记每天看月亮。

2025-01-17 18:20:42 903

原创 2023年终总结-一名23届毕业生的风雨秋招路

在我敲下最后一行的文字,是2023年的最后一天,不管这一年大家过的怎么样,新的一年都已经要到来了,就预祝各位掘友在新的一年都能实现自己的目标和愿望!

2025-01-16 11:11:25 692

原创 【分布式锁通关指南 01】从解决库存超卖开始加锁的初体验

在电商业务中,库存超卖问题就如同一颗定时炸弹,随时可能在高并发的环境下引爆。对于后端工程师来说,就需要为这颗炸弹加上防止爆炸的保险,从而避免因为超卖导致的资损问题。本系列文章就将从这个场景入手,一步步地为各位读者引入分布式锁的各种实现,从而让大家可以掌握分布式锁在常见场景的使用。

2025-01-15 09:29:31 1140

原创 SpringBoot整合Flowable【07】- 驳回节点任务

在06篇中我以查询历史绩效结果这个业务场景,来帮助大家熟悉和掌握相关API的使用,通过查询历史流程和变量来实现这个目的。回到我们本篇的博客,我们依然从业务场景出发,还是这个绩效流程,如果你的上级对你的自评结果不满意,他想要驳回让你重评;或者你自评后发现有遗漏填写数据需要补充,也需要上级给你驳回重填。通过以上的业务场景,我们可以发现其实驳回功能在实际业务中是一个很普遍且有用的功能。因此,在本篇中我们将学习如何对任务进行驳回。

2025-01-14 18:52:34 1520 1

原创 SpringBoot整合Flowable【06】- 查询历史数据

在05篇中我们学习了如何使用流程变量,如果业务需求为,其实流程变量就可以当“表单”使用的,K-V的结构几乎天然支持了这部分。但是,如果你的业务需求需要用户灵活定制流程变量,这里用文字说明可能有的同学不太理解,具体案例大家可以去参考,用户可以在每个节点自己定义和管理变量,这种场景流程变量就无法很好地支持了,就需要用到Flowable提供的来操作了。上述的内容其实是对流程变量的一个小结,可以让大家对有更好的理解,也是我们后续内容的一个预告。说回正题,前面我们多次提到了。

2025-01-14 18:52:25 1310

原创 SpringBoot整合Flowable【05】- 使用流程变量传递业务数据

首先,我们来看下流程变量的官方定义:在Flowable中,流程变量是在流程实例按步骤执行时需要保存并使用的数据,这些数据被称为变量(variable)。流程实例可以持有变量,这些变量被称为流程变量。我们目前只需要知道变量可以在Java服务任务中用于调用外部服务(例如为服务调用提供输入或结果存储),参考上面绩效分数的例子。我们在实际业务中执行任何流程都可能涉及到有数据流转,流程变量负责的就是在流程流转的过程中传递业务参数。

2025-01-14 18:52:16 751 1

原创 SpringBoot整合Flowable【04】- 通过代码控制流程流转

本次我们演示使用的模型就是上篇中在Flowable-UI中建立的绩效模型,因此我们需要把模型文件导出。在模型管理界面,我们绘制的模型在详情页都有导出选项。将导出的模型文件放到项目里,位置没有硬性要求,但建议放在resource目录下。虽然Flowable也可以在非Spring环境下使用,但我相信应该没人会拒绝SpringBoot,毕竟精力扑到业务和开发上,比折腾配置可有趣多了。我们需要在02篇配置的基础上添加Flowable相关的配置。2.部署流程完成了相关的配置后,我们来定义一个流程控制器并注入

2025-01-14 18:52:05 1219 1

原创 SpringBoot整合Flowable【03】- 通过Flowable-UI体验一个简单流程

对于第一次使用Flowable,我们先采用官方提供的flowable-ui进行模型的绘制,让各位读者可以感受到整个流程的运行变化,从而在后期的编码中不会感到迷惑,这也是我本次选择使用7.0版本以下的flowable的原因(前文提过:官方将7.0以上的版本已经移除flowable-ui)。

2025-01-14 18:51:55 1645

原创 SpringBoot整合Flowable【02】- 整合初体验

在我们正式建立项目前,我们先去flowable的github主页了解一下版本信息,flowable版本上大的区别主要以7.0.X版本作为界线,通过官方的版本说明我们知道7.0版本主要对JDK17和SpringBoot3做了支持,所以各位读者在选择版本的时候要根据自己项目目前Spring和JDK的版本进行选择,如果是非SpringBoot3.X的版本就使用Flowable7.0.X以下的版本就好。#二、创建项目。

2025-01-14 18:51:44 1211

原创 SpringBoot整合Flowable【01】- 初识工作流引擎

当FlowableUI无法满足复杂的流程业务需求时,这个时候“大手子”就可以基于bpmn.js来自定义流程设计器。官网地址:https://bpmn.io/感兴趣的同学可以参考中文学习文档:https://github.com/LinDaiDai/bpmn-chinese-document。

2025-01-14 18:51:30 755

原创 SpringBoot通过Azure Open AI打造一个国内可用的chatGPT

最近想在自己的一个项目里接入chatGPT实现AI对话助手,但是调研了一下Open AI提供的服务在国内不好用,需要搭代理,而且还有封号的风险。于是在寻找别的方案时发现了微软也提供了相应的服务,并且国内可用,而且响应速度还是挺快的。

2025-01-14 09:55:58 906

原创 记录一次后端接口抖动的排查过程

某天下午,提交了代码的我正在测试环境狠狠地测试刚完成的新功能,把业务流程走了一遍没发现什么问题,美滋滋地准备享受下午茶,但突然发现页面上有的接口打开速度变慢了,要好几秒,刚开始以为是自己的网卡了,刷新后又测试了几下,发现确实有时候接口会变慢,于是开始了漫漫排查之路!

2025-01-14 09:45:53 559

原创 SpringBoot整合gRPC踩坑回顾

把自己内部的服务也改造成gRPC相关的代码。当时需求提的是项目想升到SpringBoot3.0,因此对于版本这里我就没给予重视,满腔热血地打开Github,搜索了相关starter,然后引入到了项目中,光速仿写了个Demo,然后项目启动傻眼了,RPC服务没启动起来,一顿操作猛如虎,最后发现自己预研不够充分,官方文档贴出了版本对照表:https://yidongnan.github.io/grpc-spring-boot-starter/en/versions.html#version-2x。

2025-01-13 15:46:48 389

原创 自研一套高性能API网关,你都需要做什么?

其实有点小小的标题党啦,毕竟相信各位读者对“高性能”的追求是永无止境的。但如果你确实有打算自研一套API网关,那么我认为了解构建它的基本组成和架构是很有必要的,本篇博客主要是围绕这些东西做一个整体的介绍。

2025-01-13 14:33:09 719

原创 为什么我的“OSS”上传图片会失败?

这篇文章出自我毕业后的一个半月,自己也很快地从学生思维转变到了打工人思维模式上,未来之路还很长,自己要学的东西也还很多,希望自己能保持着对技术的热情走远些吧!

2025-01-13 13:50:35 414

原创 @Transactional 你真的用对了吗?

我们在日常开发中几乎经常会使用@Transactional对方法或者接口进行事务管理,毕竟声明式事务这么方便,谁不爱呢,哈哈!但是这个注解的实现原理我们需要搞清楚才能避免“踩坑”。本篇文章就是针对一个使用场景来讨论的,希望可以帮助大家避免在开发中犯下这个错。在这个代码里,updateA方法里调用了updateB方法,它们在各自的接口上都注解,但是这个调用又是在当前同一个类下进行的,所以不会开启新的事务,进而也就有了IDE的这个提示。

2025-01-13 11:02:54 739

原创 打造智能音乐推荐系统:基于深度学习的个性化音乐推荐实现

在数字化时代,音乐已成为人们生活中不可或缺的一部分。随着音乐流媒体平台的兴起,如何在海量的音乐库中为用户提供个性化的音乐推荐,提升用户体验,已成为一个重要的研究方向。传统的推荐算法在处理大规模数据和复杂用户偏好时,存在一定的局限性。近年来,深度学习的快速发展为构建智能化的音乐推荐系统提供了新的思路。本文将详细介绍如何基于深度学习技术,构建一个个性化的音乐推荐系统。我们将从数据收集、模型设计、训练优化到实际部署,全面展示系统的实现过程。

2025-01-13 10:57:44 1915

原创 FastAPI + ONNX 部署机器学习模型最佳实践

模型兼容性:不同的深度学习框架(如 TensorFlow、PyTorch)有各自的模型格式,直接部署可能会有兼容性问题,导致部署困难。性能瓶颈:模型推理速度直接影响用户体验和系统资源消耗,性能优化至关重要。服务稳定性:需要确保服务在高并发情况下的稳定性和可靠性,否则可能会崩溃。安全性:需要防范潜在的安全风险,如输入数据的验证、攻击防护等,保障应用安全。看到这里,可能有人会问:“有没有一种简单的方法,可以解决这些问题呢?”答案就是——!编写应用主文件main.py。

2025-01-13 10:51:00 814

原创 HuggingFace Transformers 库深度应用指南

用于文本的分词和编码;AutoModel:加载预训练模型的基础类;Trainer 和 TrainingArguments:用于微调模型的高阶工具;Pipeline:封装了从预处理到推理的完整流程,适合快速开发。通过和AutoModel# 1. 初始化 tokenizer 和 model# 2. 文本预处理text = "这是一个测试文本"inputs = tokenizer(text, return_tensors="pt") # 返回 PyTorch 张量# 3. 模型推理。

2025-01-13 10:47:08 1192

原创 用“吃火锅”来讲清楚大模型是什么

你可以把大语言模型想象成一个超级聪明、记性超好、还特别会聊天的“火锅AI服务员”。根据你的需求,准确地推荐菜品、回答问题,甚至和你聊人生哲学。它的核心技能,就是靠“语言”来理解你、服务你。简单来说,大语言模型就是一个被训练得特别聪明的“文字大脑”。这个大脑可以根据海量的文字数据,学会理解、预测、生成文字,从而回答各种问题、写文章、甚至陪你唠嗑。总的来说,大语言模型就像一个在火锅局里特别会聊天的聪明AI服务员。它有超强的记忆力、灵活的应变能力,还能跟你玩梗聊天,甚至回答冷门问题。

2025-01-13 10:34:21 1025

原创 小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署

在许多小团队中,开发人员不仅要编写应用代码,还需要负责将应用部署到生产环境。对于没有专职运维人员的团队,每次手动部署都不仅费时费力,还容易出错。因此,采用来实现自动化部署,成为了解决这一问题的最佳方式。本文将演示如何使用和来实现应用的自动化部署。我们的目标是,开发人员无需将精力耗费在运维任务上,而是通过现成的来简化部署过程。需要说明的是,本文的核心目标是降低部署的运维成本,因此选择了多个云服务来演示整个流程,但在实际应用中,大家可以根据团队的情况进行调整。例如,如果团队有足够的精力,也可以自行部署。

2025-01-10 11:10:39 760

原创 基于Java的Hadoop文件处理系统:高效分布式数据解析与存储

随着移动互联网时代的到来,也随之而至。无数的信息流与数据流在各种系统和设备中涌动,如何高效地存储与处理这些海量数据,成为了当今技术领域的一大挑战。作为Apache旗下的分布式存储与计算框架,一直在大数据处理领域占有重要地位,凭借其强大的扩展性和可靠性,广泛应用于各类大规模数据处理任务。本文将借鉴的设计思想,使用(分布式计算模型),以此展示如何通过并行计算解决海量数据处理问题。

2025-01-10 10:48:13 635

原创 多领域智能客服:基于Java的智能分发与定制化问答系统

随着自然语言处理技术的不断进步,越来越多的企业尝试将 AI 客服引入实际业务中。然而,尽管大模型具备强大的语言理解能力,,AI 客服在许多企业中的应用落地效果并不理想。尤其是在面对多领域、多场景的客户需求时,单一的 AI 模型往往难以提供的回答,进而影响了用户体验和企业的运营效率。

2025-01-10 10:29:41 966

原创 微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统

抖音的推荐系统是其成功的关键之一,而背后是一套复杂的微服务架构支撑着高并发和庞大的用户数据处理。每当用户刷到新的视频时,背后都有一个复杂的推荐算法在实时运行。而在这样的场景下,构建一个高效、可扩展的微服务架构是至关重要的。本文将通过 Spring Cloud 构建一个简化版的抖音推荐系统,探讨微服务架构的设计与实践。

2025-01-09 16:10:27 1084

原创 SpringBoot整合XXL-JOB【05】- 任务分片

在实际业务场景中,我们可能会碰到需要短时间批量执行的定时任务,此时如果我们不做任何处理,只是像前面那样去执行,可能出现上一批的任务还没执行完,定时的时间就到了,那么势必会对业务产生影响,所以就需要我们对批量任务进行分片处理,本节就让我们看看Xxl-job如何做分片处理。

2025-01-09 15:24:56 866

原创 SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略

我们先来回顾下我们现在的定时任务是怎么应用的,我们先在调度中心里配置个任务,接着在项目里对需要定时执行的方法加上XXL-JOB的注解,也就是说我们如果现在需要对某个方法改成定时任务是需要重新发版部署的。但GLUE模式支持我们直接对线上的某个方法改造成定时任务,而无需重新部署发布,接下来让我们看看怎么做。

2025-01-09 15:13:33 1001

原创 SpringBoot整合XXL-JOB【03】- 执行器的使用

在上节中,我们部署了调度中心,并且认识了调度中心,那么让它与我们的项目相结合呢?就需要用到“”,通过调度中心配置的“”,再在我们的项目里使用,就可以实现定时任务的控制了。

2025-01-09 14:44:40 944

原创 SpringBoot整合XXL-JOB【02】- 启动调度中心

本篇主要讲述了如何初始化调度中心以及对调度中心的功能模块有了一个初步的认识,下一篇则用一个简单的例子带大家使用XXL-JOB来执行定时任务。先对数据库连接进行修改,根据你个人的配置进行修改,如果你有线上的数据库那就改成线上的配置信息就行。就不用说了,是我们调度中心的首页,可以对整体运行情况有个大致的了解。下载源码下来之后,要不用着急启动项目,在源码目录下的。配置文件进行修改,因为我们只是本地测试,并不部署(第一次登录,输入默认的用户名。

2025-01-09 14:21:23 287

空空如也

空空如也

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

TA关注的人

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