自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 问答 (1)
  • 收藏
  • 关注

原创 Mysql临时表

在 MySQL 中,临时表是一种特殊的表,主要用于临时存储中间数据,其生命周期与创建它的会话(Session)绑定 —— 当会话结束(如断开连接)时,临时表会自动删除。临时表是会话隔离的:每个会话只能看到自己创建的临时表,不同会话即使创建同名临时表也不会互相干扰。在开发或调试时,如需临时模拟数据(如测试一条复杂的更新语句),可以创建临时表存储测试数据,避免直接操作正式表导致的数据风险。若需在存储过程中使用临时表,需注意存储过程结束后会话未关闭时,临时表仍会存在(直到会话结束)。但不同会话的临时表可以同名。

2025-11-13 09:52:50 307

原创 Nginx、Spring Cloud Gateway 与 Higress 的应用场景及核心区别

如果需要进一步学习Higress的AI网关能力,可以结合之前的测试示例(JWT认证、AI插件等)进行实践,其在AI场景下的扩展性是传统网关无法比拟的。选Higress,利用其AI插件能力优化Token流量、管理提示词,降低大模型调用成本。优先考虑Higress(基于Envoy)或Istio,二者均支持服务网格和动态配置。选Spring Cloud Gateway,无缝集成Spring生态,开发效率高。选Nginx,其稳定性和性能在传统场景中表现优异。

2025-07-02 22:31:16 969

原创 MCP Server开发使用Pixabay网址搜索图片

MCP 本质上是为 AI 大模型提供调用外部工具的能力,MCP Server 就是这个能力的具体实现——你可以通过它,把你已有的 API、脚本、服务包装成 AI 能理解和调用的 MCP 工具。我们就以获取图片为例来创建一个 MCP Server,让 AI 根据自然语言来获取图片网站上的图片,比如 Pixabay 图片网站,它就提供了 API 可以让外界来搜索图片。注意这里args一定要配置正确的MCP Server开发的node.js的本地路径。8.根目录创建 tsconfig.json 文件,内容如下。

2025-05-21 14:19:53 532

原创 MCP Server开发并使用自定义天气查询工具查询城市天气

1.本地安装node.js环境2.本地创建mcp文件夹,搭建mcp环境在文件夹下cmd执行npm init -y初始化npm项目3.创建weather-server.js文件,代码如下4.服务启动5.添加本地MCP服务配置,绑定本地地址6.配置clineAct Mode选择Qwen 模型7.验证查询北京今天天气查询武汉今天天气

2025-05-21 14:10:58 880

原创 Dify智能体开发实践

例如,当你反馈“产品无法启动”的问题时,可补充“产品是ABC软件,版本号为2.5.0,在Windows 10系统上,每次双击图标都无反应,没有错误提示”等信息。1.核心规则 根据用户的查询需求,确定涉及的表和字段。若用户的问题超出上述范围,你需要明确回复:“很抱歉,你的问题不在我的服务范围内,你可以提供更具体的技术相关问题,或者联系我们的技术支持团队获取进一步帮助。如果用户的问题信息不足,引导用户补充关键信息,例如:“请提供产品的具体版本号、操作系统类型以及出现问题的详细步骤,以便我更准确地为你解答。

2025-05-21 11:12:16 1278

原创 基于moonshot模型的Dify大语言模型应用开发核心场景

在“探索”中打开,这里动态数据获取完成,只需要传入不同的查询参数,比如location所查询的位置传入需要查询的城市即可返回当前城市的天气信息,实现了动态传参查询的效果,这里的天气查询API可以使用现有的天气网址提供,也可以延申一下,将自己开发的API提供给Dify,灵活的在Dify的业务中使用。(2)需求收集:身份验证成功后,通过collect_requirements函数与用户进行多轮对话,收集用户的需求信息,用户可以输入多个需求类型及其具体内容,输入done结束需求输入。

2025-05-21 10:40:34 1117

原创 基于Qwen1.5-0.5B指令监督微调数据集的模型训练

实践过程:最开始下载的模型为Qwen1.5-7B,由于体量太大电脑显存无法流畅的运行,换成Qwen1.5-0.5的模型进行训练,Qwen1.5-7B虽然精度较高显存占用为28G,但是对于Gtx1060属于超符合运行,如果不是开启4方量化,估计很难跑起来,于是选择了显存只占2G的Qwen1.5-0.5,虽然能力没有7B强,优势是可以在显存更小的机器上训练,并且能够满足文本分类指令微调的这种小demo。输出:用微调后模型推理输出三条样本数据的结果,输出结果与样本数据集中分类一致,日志或截图。

2025-05-21 10:19:03 1115

原创 Windows安装CUDA

直接点击下一步就安装成功了,使用nvcc -V验证,出现如下内容标识安装成功。1.cmd 命令查看nvidia-smi.exe,CUDA版本号为12.8。安装失败的直接选择local的版本试一试。

2025-03-23 11:04:03 1158

原创 Doris数据库和 MySQL数据库的区别

Doris 数据库:主要使用位图索引、倒排索引等,这些索引结构在处理大规模数据的特定查询时效率很高,能够快速定位满足条件的数据。MySQL:支持多种索引类型,如 B-tree 索引、哈希索引等,B-tree。索引适用于范围查询和排序操作,哈希索引则在等值查询时具有较高的性能。

2025-02-13 17:25:34 1637

原创 Excel拼接sql

需要将Excel数据导入到数据库中,由于数据量不是特别大且需要使用一次,写程序过程太复杂,于是想到使用Excel拼接sql的方式来导入数据。(1)=“sql语句 ”,必须要使用双引号,否则公式不生效。(3)需要在“&&”外在使用单引号表示varchar类型。sql公式拼写完成,确认sql语句正确性。在Excel列中输入下列sql公式。(2)使用“&&”引用元素。下拉生成固定sql语句。

2024-10-21 17:13:53 1538 1

原创 系统指标优化 & Stream流 API使用及源码分析

所以map我一般都会放在结尾使用,但是有时候需要优先对集合处理然后再进行排序或其他操作,这里就可以使用peek的方式,作用在Stream流的中间,因为peek传入的是Consumer无集合返回,而map传入的。我的理解,这里去重其实就是利用了HashMap的key相等覆盖值的原理进行去重,将我需要过滤去重的value值作为Map的key存入,需要过滤的集合作为Map的value存入,这里是取出具体的指标,但是这个指标是有很多种类型,也就是多个前缀不同的字符串,所以需要再次concat过滤。

2024-09-16 16:17:44 1039

原创 Aop切面编程

订单保存模型/***/@Data订单更新模型/***/@DataService业务层实现保存、更新等操作/***/@Service/*** 单纯加注解是没用的,需要定义切面*/@RecordOperate(desc = "保存订单",convert = SaveOrderConvert.class)@RecordOperate(desc = "更新订单", convert = UpdateOrderConvert.class)定义日志模型用来记录订单保存、更新信息。

2024-08-20 23:33:28 405

原创 Maven日志依赖冲突问题

(2)查看依赖关系,ctg-mq-tools这里之前和logback-classic互相指向,当时只排除了单向的一直没解决问题,后面双向都排除掉服务才正常启动。问题点:日志框架包含了多个,但是只能匹配了其中一个,当前匹配的是logging,需要排除logback-classic。(3)使用工具Maven Helper修改依赖为不包含logback-classic。

2024-08-19 00:03:24 554

原创 RocketMQ

消息中间件以前常用RabbitMQ和ActiveMQ,由于业务需要,后期业务偏向大数据,现着重学习一下RocketMQ(RocketqMQ原理同ctg-mq),后续更新Kafka。

2024-08-16 23:29:45 1722

原创 Web网站的授权oAuth2.0 & 单点登录

点击gitee按钮,跳转到gitee码云登录页,如果gitee账号登录成功,会redirect重定向到咱们自动的业务网站系统首页实体。

2024-08-15 22:30:37 1013

原创 mysql分库分表

根据userId或者业务id取模\hash\range,如果取模结果为1落到第一个库,如果取模为0落到第二个库。

2024-07-29 00:29:21 531

原创 AQS和ReentrantLock源码剖析

保住原子性),(2 )让尾节点tail指向当前Node(3)让上一节点指向当前节点(存在多节点竞争,需要CAS加锁操作)双向链表初始化thread=null的节点,如果有新Node加入,(1)则优先修改Node自身的指向,指向为上一个节点(如果ReentrantLcok没拿到锁资源,则会将线程封装成Node存入,Node保存当前线程。如果准备获取锁资源,需要出队,双向链表能够更好的修改头尾节点的指向。将未获取到锁的线程,封装为Node,添加到双向链表。双向链表 (未获取锁的线程)存储没获取锁资源的线程。

2024-07-20 20:06:03 791

转载 sql注入原理

sql注入

2023-08-15 19:25:50 237

原创 DDD架构

如果领域服务内的业务逻辑相对复杂,我建议你将一个领域服务设计为一个领域服务类,避免由于所有领域服务代码都放在一个领域服务类中,而出现代码臃肿的问题。这里提示一下:虽然应用层和领域层都可以进行事件的发布和处理,但为了实现事件的统一管理,我建议你将微服务内所有事件的发布和订阅的处理都统一放到应用层,事件相关的核心业务逻辑实现放在领域层。以聚合为单位的代码放在一个包里的主要目的是为了业务内聚,而更大的目的是为了以后微服务之间聚合的重组。聚合内实现高内聚的业务逻辑,它的代码可以独立拆分为微服务。

2023-07-24 13:57:52 1537

原创 Xxl-job使用

【代码】docker部署xxl-job。

2023-07-21 16:07:29 1367

原创 rabbitmq延时队列自动解锁库存

(3)如果是 4-已关闭,执行解锁库存操作,订单其他状态不做处理。解锁前判断工作单的状态是否为 1-已锁定,证明只做了锁定库存操作。(1)保存 工作单(订单号)、工作单详情(商品锁了多少库存)(4)解锁库存,修改工作单详情状态为 已解锁。如果存在,查询订单状态是否为 4-已关闭。如果订单不存在,表示已回滚,不做处理。(2)把上面的数据给mq发一份。不存在代表已回滚,不做处理。(1)判断工作单是否存在。(2)查询订单是否存在。

2023-07-14 00:12:09 3436

原创 mq延时队列使用

1.生成队列、交换机、绑定规则。

2023-07-12 21:45:09 302

原创 订单结算页+下单业务

一般的收货地址都是多个,使用时选中一个,所以收货地址使用List集合封装购物车商品也是多个,使用List集合封装查询每个商品是否有库存,显示是否有货,使用Map封装使用BigDecimal计算,算出每个商品的总价(价格*件数)然后求和,最后扣除优惠价格得到结算价,还可以做积分业务。

2023-07-11 20:18:40 550

原创 rabbitmq消息确认机制

默认是ack,consumer只要拿到消息就会自动确认,服务端就会删除queue中的消息,如果业务出现问题只有部分消息签收成功,剩余未签收的消息也会删除,为了能保存消息,需要设置为客户端手动确认签收。如果exchange有消息没有成功发送至queue,就会执行RuturnCallback,例:routing key错误导致发送消息到队列失败。如果服务重启,未签收的消息就会加入queue重新发送:Unacked ===> Ready。设置手动ack签收之后,如果有消息没有签收(签收失败),会显示未签收。

2023-07-01 17:52:49 2409

原创 docker部署rabbitmq超时解决办法

把修改的host域名注掉就可以了。

2023-06-30 00:05:16 528

原创 购物车业务

此方法是将商品数据存入redis,这里选用redis是因为添加购物车操作会频繁的交互数据库,但是redis的持久性有没有数据库好,所有需要增强redis的持久性,redis存数据会使用序列号操作转成字符流进行保存,我们查询数据和获取都不方便,这里直接转换为JSON格式进行存储。如果不指定线程池,默认使用 ForkJoinPool,是守护线程,主线程结束,线程池关闭,自定义线程池的需要手动关闭,为什么自定义线程后,调用线程却是调用 ThreadPoolExecutor?为什么使用同一个线程池?

2023-06-29 18:42:44 745

原创 Cookie创建临时用户

例:拦截器 —> controller —> service —> dao 都是同一线程。每个请求tomcat会开一个线程,执行当前请求 直到结束。(1)自定义拦截器规则。(2)将拦截器放入容器。

2023-06-27 20:32:14 962

原创 nginx配置

【代码】nginx配置。

2023-06-26 12:27:00 181

原创 Spring Session使用

解决Domain子域名无法获取session数据的问题/*** 自定义session的使用范围——Domain} /*** 自定义redis序列化方式为json,原来是Serializable} }

2023-06-25 12:56:12 1230

原创 社交登陆成功回调

(2)社交登陆回调OAuth2Controller。

2023-06-23 16:50:57 1004

原创 OAuth2:使用Gitee第三方授权

传入上一步获取的code码,client_id,redirect_uri,client_secret。传入client_id(创建应用获得)、redirect_uri(需要通过第三方授权跳转的url)

2023-06-22 16:07:38 1791

原创 新用户注册

(一) 字段校验(二) 校验验证码(三) 用户注册。

2023-06-19 23:11:37 1206

原创 异步编排CompletableFuture使用

*** int corePoolSize, 核心线程数* int maximumPoolSize,最新线程数* long keepAliveTime, 空闲线程剩余时间* TimeUnit unit,时间单位* BlockingQueue workQueue 阻塞队列* ThreadFactory threadFactory, 线程工厂* RejectedExecutionHandler handler 拒绝策略。

2023-06-19 16:31:12 321

原创 HttpUtils模版

【代码】HttpUtils模版。

2023-06-16 23:26:42 99

原创 阿里云发送短信

【代码】阿里云发送短信。

2023-06-16 23:18:19 251

原创 分组函数group by使用技巧

进行group by分组的字段会变成一条记录,那么想要分组成功,就必须保证一对一的关系,输出是一条记录,所以需要将未进行分组的字段使用聚合函数(count ,avg,sum…

2023-06-15 15:56:00 578

原创 Kibana数据迁移

还可以通过设定 doc_values 为 true,index 为 false 来让字段不能被搜索但可以用于排序、聚。默认 true,如果为 false,表示该字段不会被索引,但是检索结果里面有,但字段本身不能。默认 true,设置为 false,表示不可以做排序、聚合以及脚本操作,这样更节省磁盘空间。做dsl聚合操作时查询不了数据,查看映射发现字段设置了不进行索引,不参与聚合。不删除数据的情况下修改mapping映射,使用数据迁移。

2023-06-08 12:18:20 643 1

原创 商城检索 DSL

match会计算热度评分,filter不计算分数效率更快,所有把不需要热度评分的字段放大filter。bool复合查询,must必须,全文检索字段用 match,其他非 text 字段匹配用 term。查询attrs属性下嵌入的属性attr_id需要使用nested 嵌套查询。全文检索字段用 match,其他非 text 字段匹配用 term。“attrValue” : “高通(Qualcomm)”品牌是可以多选的,检索条件为品牌id的集合。检索字段:属性id、属性值。检索字段:商品sku标题。

2023-06-07 20:18:16 674

原创 Spring Cache

key的生成指定生成缓存的key:key属性指定,接收一个Spel指定缓存的数据的存活时间:配置文档中修改存活时间将数据保存为json格式。

2023-06-05 23:20:13 1326 5

原创 redis缓存同步最新数据的解决方案

用户a用户b拿到同样的缓存数据,用户a更新完数据db-1然后删掉缓存,用户b此时更新操作较慢,此时用户c读数据,发现缓存没有数据,就去查数据库最新数据db-1,此时用户b的数据并未更新完成,然后用户c取出db-1,所以导致缓存的数据不是最新的数据。,读写锁防止并发脏数据,缓存无法读到最新的数据,配合缓存的过期时间就能保证缓存能一直保存最新睡觉,但是只能保证缓存的数据的一致性,不能保证实时同步最新数据,所有需要频繁更改的数据就不用使用缓存了,直接查数据库就行。

2023-06-05 17:53:57 660 1

空空如也

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

TA关注的人

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