- 博客(222)
- 收藏
- 关注
原创 一系列带你学会Coze——Coze智能体开发
随着GPT、DeepSeek等大模型的技术不断蓬勃发展,大模型与人之间的交互成为AI技术快速落地应用的难题。智能体,作为大模型应用的关键一环,成为行业内的热点。Coze作为国内字节旗下的智能体开发平台,帮助无编程经验或少量编程经验的人也可以轻松上手大模型开发应用,快速开发出自己的AI产品;也可以通过 API 或 SDK 将 AI 应用集成到你的业务系统中,因此具有较高的学习价值。Coze的Playground。
2025-11-24 21:39:59
293
原创 一系列带你学会Spring AI
自从Transformer诞生以来,LLM(Large Language Model)大模型技术就开始蓬勃发展,从ChatGPT系列到国内的DeepSeek、通义千问系列,大模型技术不断迭代,一次次突破性能指标上限。但是,大模型的落地应用成为行业难题,诸如智能体、RAG等技术不断解决落地难和应用难的问题。繁多的技术规范不统一,学习起来极为困难,而Spring AI、LangChain等技术正是统一大模型应用落地的框架,也是传统开发编程融入人工智能发展的新机遇。
2025-11-16 18:46:10
900
原创 实现VirtualBox虚拟机(CentOS7系统)和宿主机的共享文件夹
这里仍然推荐手动安装,因为自动安装的方式在VirtualBox中安装增强功能成功后,系统已经具备了共享文件夹的驱动支持。如果在设置共享文件夹时勾选了"自动挂载"选项,那么系统会在每次启动时自动将共享文件夹挂载到默认目录(通常是/media/下的某个共享文件夹),但由于自动挂载的目录权限和位置可能不易管理,因此推荐手动挂载方式,可以灵活配置共享文件夹的路径。共享文件夹路径是本地主机需要共享的某个路径,这个路径下的所有文件都会被共享到虚拟机内挂载点目录(/mnt/usercode)。
2025-11-03 16:44:08
963
原创 Elasticsearch从入门到进阶——分布式特性
Elasticsearch从入门到进阶——搜索优化原理上篇文章我们已经对搜索引擎进行了优化,使其的搜索能够加速。
2025-10-25 22:08:33
741
原创 Elasticsearch从入门到进阶——搜索优化原理
在上篇文章,我们了解了搜索引擎的核心结构就是正排索引和倒排索引,并实现了简单的搜索引擎。但是Elasticsearch基于lucene实现的搜索引擎还有许多设计细节,这篇文章就来了解一下:Elasticsearch从入门到进阶——搜索引擎原理。
2025-10-24 20:59:49
1030
原创 Elasticsearch从入门到进阶——Elasticsearch部署与使用
Elasticsearch(ES)是一个分布式搜索引擎,基于Apache Lucene(Lucene是当搜索引擎库)构建。它专为处理海量数据设计,支持结构化/非结构化数据的全文检索、聚合分析及实时监控。核心价值在于解决传统数据库在大数据场景和分布式场景下的检索瓶颈。比如传统的数据库MySQL,如果想在其中搜索某条记录,基于关键词搜索,通常采用模糊匹配like。在少量数据下,遍历全库的方式系统还能抗住,但是在大量数据下,该操作的效率就会非常低下,因此仅依靠模糊匹配就难以解决关键词搜索的问题。
2025-10-22 21:02:36
787
原创 Elasticsearch和Kibana的启动报错问题——Kibana服务器尚未准备就绪、Elasticsearch启动失败ERROR: failed to obtain node locks
在这里分享一下使用docker compose启动Elasticsearch和Kibana遇到的两个问题的解决方案。
2025-10-21 21:11:10
635
原创 XXL-JOB从入门到进阶——系统架构、核心原理
有关XXL-JOB的使用可以查看上一篇文章,这篇文章主要深入学习一些XXL-JOB的底层原理。XXL-JOB从入门到进阶——特性、部署、快速集成。
2025-10-16 10:57:23
898
原创 XXL-JOB从入门到进阶——特性、部署、快速集成
如果想了解更多细节,可以查看官方文档和git仓库:分布式任务调度平台XXL-JOB源码仓库XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。该技术最初是由许雪里于2015年研发,随后开源,逐渐成为国产热门的分布式任务调度平台。在需要定时执行的方法(定时任务)前添加@XxlJob注解,并声明JobHandler(和调度中心配置的一致),此时任务就定义成功。
2025-10-15 16:27:14
1100
原创 XXL-JOB调度中心登录问题——账号或密码错误(使用的是官方文档的初始数据库数据的密码)
在学习xxl-job时,使用docker方式部署xxl-job调度中心(2.4.0版本),但是明明使用的官方默认密码初始化的数据库,结果总是登录不成功:上面是官方源码仓库xxl-job/doc/db/tables_xxl_job.sql的用户名和密码,对应admin/123456,下面是我的数据库中的admin对应的密码,可以发现,值是一样的。官方源码。
2025-10-14 18:14:47
1029
1
原创 Vue3后台表单快速开发
/ 登录表单phone: Cookies.get(PHONE) || '', //手机号password:?'': decryptHex(Cookies.get(PASSWORD)), // 密码code: '' // 验证码})表单数据对象可以使用reactive定义,也可以使用ref定义。重点是考虑需不需要默认填入表单的值,如果需要,就要在定义时赋值。这里是登录表单,如果有记住我选项,就需要向表单填入初始值。// 校验规则phone: [message: '⼿机号不能为空',},
2025-10-08 14:21:36
606
原创 Vue3状态管理Pinia
Pinia是Vue的存储库,允许跨组件/页面共享状态,在Vue应用程序中管理状态数据,允许不同组件共享和使用这些数据。但是状态数据可能会随页面关闭或浏览器关闭而丢失,因此需要持久化到本地存储,pinia-plugin-persistedstate就可以将状态数据持久化。// 状态数据token: '',})state是定义的状态数据,包括两个状态:token和userInfo,这两个状态全局共享。// actions定义操作状态数据的一系列函数。
2025-10-07 13:49:07
574
原创 Axios快速上手
Axios是一个基于promise( Promise是JavaScript的异步编程的对象,用来接收异步操作成功或失败以及数据的对象)的网络请求库,可用于node.js和浏览器中。用于node.js就是后端开发发送http请求,用于浏览器就是前端开发发送ajax请求。Aaxios(ajax i/o system)本质上也是对原生XHR(XMLHttpReques)的封装,只不过它是基于promise的,是promise的实现版本,符合最新的ES规范。标准化:统一浏览器/Node环境请求接口。
2025-10-06 14:26:18
1408
原创 MybatisPlus和pagehelper分页冲突—关于jsqlparser、pagehelper、MybatisPlus三者的版本兼容问题
今天在集成pagehelper依赖时,遇到问题,
2025-10-05 16:00:57
662
原创 Vue3双向数据绑定v-model
v-model 是Vue框架的一种内置的API指令,用于处理双向数据绑定,本质是一种语法糖写法。双向数据绑定是指数据绑定在视图上,视图的改变会影响绑定的数据,而数据的改变又会影响视图的显示。因此常用于表单项,表单元素通过v-model绑定数据,数据变化会影响表单元素的数据显示,而表单内的输入数据又会影响绑定的数据。</script><template><input v-model="message" placeholder="输入内容" />
2025-10-05 15:06:03
1330
原创 Vue3 Router高级用法—菜单动态渲染
/ 创建路由实例// 路由模式:历史模式,特点是路由后面不带#号// 在这个数组中进⾏路由规则的详细配置routes: [// 根路径(根路径重定向到/login路径)path: '/',},// 登录页},// 系统主⻚path: '/',// 路由嵌套(二级路由)// ⽤户管理,meta: {title: '用户管理',},// 系统管理meta: {title: '系统管理',},// 平台账号设置meta: {title: '平台账号设置',},
2025-10-04 13:06:49
333
2
原创 关于Mybatis-Plus的insertOrUpdate()方法使用时的问题与解决—数值精度转化问题
今天在使用Mybatis-Plus的insertOrUpdate()方法时,新增能成功,编辑无法成功,报错如下:我很好奇,明明我前端执行的是编辑逻辑,并不需要phone_number字段,而insertOrUpdate()方法为什么会执行INSERT语句?而这里的phone_number报错也很好理解,就是因为数据库我设置了该字段NOT NULL,而编辑操作误执行为插入操作,因此并没有设置phone_number字段的值,于是就报错。
2025-10-03 18:12:17
737
原创 Vue Router路由
可以发现,创建的代码自带router/index.js、views/HomeView.vue和AboutView.vue文件:Home页对应:About页对应:这都是通过点击页面的Home或About切换的,页面并没有全部刷新,也没有打开新的标签,仅改变了局部视图和URL。
2025-10-03 13:56:11
1078
原创 Vue3基础入门
Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。
2025-10-02 16:23:07
637
原创 Nacos配置文件:WARN c.a.c.n.c.NacosPropertySourceBuilder - Ignore the empty nacos configuration
在启动网关微服务时,由于配置了nacos注册中心,网关服务的bootstrap.yml文件会读取服务名-dev.yaml的配置文件,但是日志发现gateway-service、gateway-service.yaml、gateway-service-dev.yaml三个配置文件均没有一个能读取到:按理讲三个配置文件只要nacos有一个符合要求都能读取成功,但是的dataId、namespace等配置项都配置的和nacos配置文件一模一样,仍然读取失败。
2025-09-29 22:11:45
539
原创 FinalShell远程连接CentOS下方文件列表信息不显示且刷新报空指针异常
出现这种情况的原因通常是因为修改了文件的权限或客户端异常中断,本人推测可能是因为我在出问题的前一天,/data目录无法显示,就大批量修改文件的权限读/写/执行权限,但是执行到一半卡着,我就主动中断的权限修改的进程,当时没有问题。但是当晚笔记本电脑因为停电导致耗电关机,可能就是这两个操作导致的问题。文件信息列表成功显示,问题解决!
2025-09-18 14:45:21
455
原创 PyCharm修改系统缓存路径,防止C盘爆满
最近把电脑上以前旧版本的IDEA、PyCharm等编辑器都更新了以下,以前的版本较久了,更新后防止软件用着用着C盘满了,修改了一些缓存路径的配置,记录一下防止自己以后再安装时遗忘。
2025-09-06 16:55:07
701
原创 IDEA修改系统缓存路径,防止C盘爆满
最近把电脑上以前旧版本的IDEA、PyCharm等编辑器都更新了以下,以前的版本较久了,更新后防止软件用着用着C盘满了,修改了一些缓存路径的配置,记录一下防止自己以后再安装时遗忘。
2025-09-06 16:39:52
722
原创 Anaconda安装与conda使用详细版
Anaconda 是一个非常流行的 Python 发行版,包含了 Python 语言、众多常用的计算库,如 NumPy、Pandas、Matplotlib 等,能够极大地方便用户的开发和数据分析工作(尤其是深度学习)。Anaconda 提供了一个统一的环境管理工具,使用conda作为虚拟环境管理的工具。conda是一个工具,主要是进行和Anaconda是一个包含了众多的package、科学计算工具的集合, 所以我们也称Anaconda为Python的一个发行版。官网下载,国外地址,速度慢,需要科学上网。
2025-08-29 17:38:18
1352
原创 Mybatis-Plus的分页查询selectPage()方法时遇到getTotal()和getPages()返回0问题
主要是因为MyBatis-Plus的分页功能依赖PaginationInnerInterceptor插件,若未配置,分页统计会失效。
2025-08-28 16:19:54
255
原创 远程调用阿里云OSS服务出现异常com.aliyun.oss.OSSException: Put public object acl is not allowed
在Bucket的权限控制界面,将阻止公共访问按钮关闭。
2025-08-22 18:00:15
311
原创 Spring Cloud系列—SkyWalking告警和飞书接入
需要在QQ邮箱设置中开启SMTP服务,并且记得把配置文件中的spring.mail.username和password替换为自己的邮箱账号和授权码。Webhook是一种允许应用程序向外部系统实时推送事件或数据的机制,通常通过HTTP回调实现,从而实现跨系统自动化的信息传递。比如service_resp_time_rule规则,表示某个服务的响应时间在最近10分钟的3分钟内持续超过1000毫秒时触发告警。silence-period是静默时间(minute),触发告警后,静默时间内不再触发;
2025-08-22 15:20:42
778
原创 Spring Cloud系列—SkyWalking链路追踪
作为SkyWalking的原生数据库,BanyanDB目前还处于高速研发的阶段,随着BanyanDB子项目的不断发展,SkyWalking官方宣布,BanyanDB 0.8已经完全生产可用,是生产环境的理想选择。ES基于倒排索引和分片机制,擅长处理海量时序数据的查询与聚合分析,可通过集群分片应对PB级数据存储需求,并且社区支持广泛,但是ES的运维成本较高,需要独立部署ES集群,对资源消耗大,使得ES的性价比不是很高。应用性能监控,通过收集、分析和可视化应用运行时的数据,帮助运维及时分析系统性能和优化系统。
2025-08-21 12:52:46
1439
原创 Spring Cloud系列—Seata分布式事务解决方案TCC模式和Saga模式
在此之后,拥堵在网络上的一阶段Try数据包被TCC服务收到,出现了二阶段Cancel请求比一阶段Try请求先执行的情况,由于已经执行过二阶段的Cancel(空回滚),因此TCC服务执行晚到的Try之后,将永远不会再收到二阶段的Confirm或者Cancel,造成TCC服务悬挂。TC在调用TCC服务的一阶段Try操作时,可能会出现因网络拥堵而导致的超时,此时事务管理器会触发二阶段回滚,调用TCC服务的Cancel操作,Cancel调用未超时(空回滚)。假设存在全局事务T1和T2,都需要执行余额-30的操作。
2025-08-20 11:19:39
1141
原创 Spring Cloud系列—Seata分布式事务解决方案AT模式
tx2全局事务在tx1全局事务的二阶段前开启并执行,执行m-100后m=800(由于tx1一阶段会提交本地事务,因此tx2全局事务会读取m修改后的值),在提交本地事务前需要先获取全局锁,但是由于全局锁在tx1手里,因此就会不断重试获取全局锁。通过SELECT FOR UPDATE语句的代理查询tx1事务提交后的数据,该语句会获取全局锁,如果未获取到全局锁,说明事务未提交,就释放本地锁并阻塞等待,阻塞期间不断重试获取全局锁,此时读取的数据就是读已提交的数据,从而避免脏读问题。(数据库数据会真实发生变化)。
2025-08-19 15:27:56
1211
原创 Spring Cloud系列—Seata分布式事务解决方案XA模式
性能较差,执行阶段需要锁定数据库资源,等待完成阶段结束才释放,导致事务资源长时间得不到释放,锁定周期长,从而影响性能。XA模式是基于X/Open组织定义的RM与TM之间交互的XA协议(实现原理就是2PC),其核心理念是利用事务资源(数据库、消息服务等)对XA协议的支持,来管理分支事务。TM负责全局事务的开启和结束的通知,即在业务代码中,需要开始事务的方法就是TM部分。简而言之,分支事务的执行提交和回滚仍然由数据库(RM)负责,TM和TC只负责全局事务的开始/结束、分支事务的状态管理等。
2025-08-18 14:19:00
755
原创 Spring Cloud系列—Seata部署
双击运行\seata-server\bin目录下的seata-server.bat,出现seata server started in 1462 millSeconds说明启动成功。两个端口号都需要开放。这里采用Windows部署方式,前往seata官网下载安装包,并将安装包解压到本地:https://seata.apache.org/zh-cn/release-history/seata-server/,管理分支事务处理的资源,负责分支事务的提交或回滚,并与TC通信来注册或汇报分支事务的状态。
2025-08-17 13:32:16
840
原创 Spring Cloud系列—Alibaba Seata分布式事务
DoCommit阶段如果所有的参与者都是可以提交的,则协调者发送“提交”请求,参与者提交事务并返回确认,从而协调者完成整个事务的提交。如果任何一个参与者在Try阶段返回给事务管理器的结果是失败,事务管理器就会给所有参与者发送Cancel请求,各参与者释放锁定资源,并回滚操作,保证数据的一致性。所有参与者提交事务,并返回ACK给协调者。针对2PC协议可能出现的问题,比如超时未应答导致阻塞、协调者参与者互相等待导致资源被长时间锁定,引入超时机制和预提交阶段,把两阶段改成三阶段,就有了性能更好的三阶段提交协议。
2025-08-16 14:34:17
985
原创 Spring Cloud系列—Alibaba Sentinel授权与规则管理及推送
而Push模式的数据源通常是基于远程配置中心的,比如Nacos、ZooKeeper等等。但是反之,如果在Sentinel Dashboard修改流控规则,Nacos配置中心的规则无法同步,这需要开启Sentinel集成Nacos持久化,从而让Sentinel Dashboard和Nacos的通信是双向的。Sentinel Dashboard页面,多了选项流控规则V1,该选项修改的流控规则就会同步给Nacos,选项流控规则还是原来的选项,只能接受Nacos往Sentinel Dashboard单向同步。
2025-08-15 10:49:35
1172
原创 Spring Cloud系列—Alibaba Sentinel熔断降级
熔断是由断路机(熔断器)统计服务调用的慢调用比例、异常比例和异常数,如果超过阈值则进行熔断,拦截请求该服务的请求;在统计时长内,请求数超过最小请求数,且慢调用(请求响应时间超过最大RT(最大响应时间))比例超过比例阈值,就进行熔断,暂停该资源一定时间(熔断时长)的访问。在统计时长内,请求数超过最小请求数,且发生异常的数量超过设置的异常数,就进行熔断,暂停该资源一定时间(熔断时长)的访问。在统计时长内,请求数超过最小请求数,且异常比例超过比例阈值,就进行熔断,暂停该资源一定时间(熔断时长)的访问。
2025-08-14 14:01:27
866
原创 Spring Cloud系列— Alibaba Sentinel限流
对应RuleConstant.CONTROL_BEHAVIOR_WARM_UP,预热模式,在设置的预热时间内,请求的QPS阈值初始值为阈值(maxThreshold)/冷因子(coldFactor),coldFactor默认为3,然后从初始阈值逐渐上升到设置的阈值。比如某微服务系统,服务1调用服务2,服务2调用服务3,假设服务3故障,此时服务2向服务3发送的请求就会超时,进而服务1向服务2发送的请求也会超时,在高流量的情况下,所有的请求都会等待很长时间然后超时,导致系统资源被耗尽而无法得到有效利用。
2025-08-13 17:34:10
869
原创 Spring Cloud系列—Config配置中心
注意:如果需要长度不限的JCE包,就需要从Java官网下载:https://www.oracle.com/java/technologies/javase-jce8-downloads.html,并把下载好的jar包放到Java安装目录下的/jre/lib/security目录中(覆盖)。上述自动刷新,如果配置中心有多个不同端口号服务时,由于刷新端点(监控的地址/actuator/refresh)需要指定ip和端口号,因此手动刷新只能对其中一个服务生效,剩下的服务仍然不能生效。
2025-08-12 15:22:37
716
原创 Spring Cloud系列—Gateway统一服务入口
Gateway的路由匹配基于Route Predicate Factories(路由断言工厂),在Gateway的配置文件中,通常会定义路由匹配规则,服务启动时Route Predicate Factories会识别路由匹配规则并转化为Predicate对象,然后由这些Predicate的条件组合来进行请求的路由。GlobalFilter是Gateway的全局过滤器,也是用来条件过滤的,不同的是GlobalFilter应用于全局所有请求,而GatewayFilter只应用于对应设置的路由。
2025-08-11 20:00:26
1247
原创 VirtualBox虚拟机网卡配置
NAT网络地址转换,是让虚拟机通过主机访问外部网络的方式。在VirtualBox中对应两种网卡:每台虚拟机都有独立的NAT设备,虚拟机之间相互隔离,无法直接通信。多个配置NAT网络网卡的虚拟机可以共享同一个NAT设备,此时这些虚拟机组成局域网,可以相互通信。无论是网络地址转换(NAT),还是NAT网络,外部网络和主机都无法直接访问虚拟机,需要配置端口转发来实现。虚拟机通过宿主机的网卡建立连接,即虚拟机与宿主机组成局域网,为虚拟机分配与宿主机在同一个网段下的ip(网络号相同,设备号不同)。
2025-08-11 19:56:38
1833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅