自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码!

写博客时,我时而化身严肃的 “代码教官”,剖析技术原理;时而变身搞笑 “段子博主”,用趣味比喻让枯燥知识 “活” 起来。别担心技术太难,跟着我,咱们一边吐槽代码里的 “坑”,一边解锁编程的超能力,在技术江湖里浪出独特风采!

  • 博客(140)
  • 收藏
  • 关注

原创 【Dify】基于 Agent 实现热门新闻生成助手

智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。

2025-06-09 08:00:00 256

原创 【LangChain4J】LangChain4J 第五弹:基于 MCP 实现快递助手并调用上万种服务

MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准。旨在为大语言模型(LLM)提供统一的、标准化方式与外部数据源和工具之间进行通信。(Agent 需要调用外部工具和API、访问数据库、执行代码等)Agent 需要理解其他 Agent 的意图、协同完成任务、与用户进行自然的对话。

2025-06-08 13:57:50 1294

原创 【LangChain4J】LangChain4J 第四弹:RAG 的多种实现方式

定义:RAG(Retrieval-Augmented Generation,检索增强生成)是通过从外接数据源检索相关信息,并注入提示词,提升大语言模型(LLM)查询精准度的一种技术。通过这种实现方式,大语言模型可以获取到特定领域的相关信息,并能够利用这些信息进行回复,从而降低了发生幻觉的可能性。RAG 解决传统大模型局限性知识过时:传统大模型依赖预训练数据,无法获取最新信息。幻觉问题:传统模型可能生成不准确或虚假的信息。RAG 优势实时更新:允许模型访问最新信息,解决知识局限性问题。提高准确性。

2025-06-08 13:45:49 464

原创 【LangChain4J】LangChain4J 第三弹:多模态与文生图的实现

是多模态任务的一种具体形式,指通过文本描述生成对应图像的技术。其核心目标是将人类语言的抽象语义转化为视觉具象,广泛应用于创意设计、游戏开发、虚拟内容生成等领域。

2025-06-08 13:40:18 803

原创 【LangChain4J】LangChain4J 第二弹:连续对话与数据持久化存储

LangChain4J 是 Java 生态中基于 LangChain 理念的框架,用于构建智能对话系统和 LLM 应用。在连续对话场景中,核心是维护对话上下文(Context),确保模型能基于历史交互生成连贯回答。

2025-06-06 16:35:54 906

原创 【Redis】分布式锁的介绍与演进之路

在一个分布式的系统中, 也会涉及到多个节点访问同一个公共资源的情况. 此时就需要通过 锁 来做互斥控制, 避免出现类似于 "线程安全" 的问题。而 java 的 synchronized 或者 C++ 的 std::mutex, 这样的锁都是只能在当前进程中生效, 在分布式的这种多个进程多个主机的场景下就无能为力了。本质上就是使用一个公共的服务器, 来记录 加锁状态。这个公共的服务器可以是 Redis, 也可以是其他组件(比如 MySQL 或者 ZooKeeper 等), 还可以是我们自己写的一个服务。

2025-06-06 10:28:06 1247

原创 【Redis】Redis 的持久化策略

Linux中主进程实现对数据的读写操作都是操作物理内存,但是所有的主进程都无法直接操作物理内存,而是由操作系统给每个主进程分配一个虚拟内存,操作系统会维护一个虚拟内存与物理内存之间的映射关系表,这个表叫做页表(映射到物理内存的数据地址)。Redis 生成的 rdb 文件是存放在 Redis 的工作目录中的,也是在Redis配置文件中,进行设置的。当这个快照生成完毕之后,再删除之前的RDB文件,把新的生成的RBD文件名字改成刚才的dump.rdb,从而保证rdb文件的唯一性。

2025-06-06 10:17:02 1138

原创 【Redis】Redis 的常见客户端汇总

1. 自定义序列化器super();@Override@Override2. 配置序列化器@Bean// 使用StringRedisSerializer来序列化和反序列化redis的key值// Hash的key也采用StringRedisSerializer的序列化方式。

2025-06-05 18:44:51 1088

原创 【AI-安装指南】Redis Stack 的安装与使用

传统的 Redis 服务是不能存储向量的,因此我们需要首先安装 Redis Stack,而 Windows 电脑安 装 Redis Stack,官方只提供了 Docker 的安装方式,因此我们需要先按照 Docker,再在 Docker 上安装 Redis Stack。Redis Stack 是一个由 Redis 官方提供的软件套件,旨在简化开发人员对 Redis 模块的使用体验, 并增强 Redis 的功能。​Redis Stack 不是 Redis 的替代品,而是扩展其能力的工具。

2025-05-30 22:42:49 1047

原创 【Python】第二弹:搭建 Python 环境

如果直接双击这个 python.exe , 就会打开 Python 的交互式解释器(控制台程序). 在这个交互式解释器中, 就可以输入 Python 代码了。2. 选择项目所在的位置, 并选择使用的 Python 解释器(一般情况下, PyCharm 能够自动识别出 Python 解释器的位置. 但是如果没有自动识别出来,也没关系, 点击右侧的 ... 选择之前安装的 Python 的路径位置即可)注意: 这个搜索结果中没有标识出 "官网", 但是大家要认准 jetbrains.com 这个域名.

2025-05-30 12:25:08 1009

原创 【Python】第一弹:对 Python 的认知

当时,计算机领域正朝着更高效、更便捷的编程方向发展,吉多希望创造一门语言,既能像 C 语言那样拥有强大的系统控制能力,又能具备 Shell 脚本语言的便捷性和灵活性,Python 便应运而生。Django 是一个功能强大、高度集成的框架,提供了从数据库管理、用户认证到 URL 路由等一系列完善的解决方案,适合快速开发大型、复杂的 Web 应用程序。Flask 则是一个轻量级的 Web 框架,它给予开发者极大的灵活性,适合小型项目以及快速原型开发,开发者可以根据需求自由选择所需的扩展和插件。

2025-05-30 12:12:32 836 1

原创 【Linux】定时任务 Crontab 与时间同步服务器

本文介绍了Linux系统中用户定时任务的创建与管理方法。主要内容包括:1)通过crontab命令创建定时任务及格式说明;2)管理员查看和管理用户定时任务的两种方式(/var/spool/cron目录和crontab命令);3)通过/etc/cron.deny和/etc/cron.allow文件实现用户黑白名单管理。文中还提供了多个定时任务设置实例,如定时关机、周期性执行命令等。黑名单与白名单文件不能同时存在,默认系统只提供黑名单功能。

2025-05-25 19:51:24 459

原创 【Linux】RPM 软件包的使用技巧

红帽系统中RPM软件包的管理操作及YUM软件仓库配置方法。主要内容包括:1)RPM包的基本操作(查询、删除、安装)及依赖关系处理;2)本地YUM仓库配置步骤(目录设置、配置文件编写、缓存建立);3)YUM常用命令(软件查询、安装、删除)。文章重点讲解了RPM与YUM工具的配合使用,特别强调了通过YUM自动解决软件依赖关系的优势,并提供了从本地源到网络源的配置方法。

2025-05-25 17:59:09 405

原创 【Hadoop】大数据技术之 MapReduce

MapReduce是一个 分布式运算程序 的编程框架,是用户开发“基于 Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将 用户编写的业务逻辑代码 和 自带默认组件 整合成一个完整的分布式运算程序 ,并发运行在一个 Hadoop集群上。

2025-05-24 00:50:04 1262

原创 【Hadoop】大数据技术之 HDFS

随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

2025-05-23 23:39:29 986 1

原创 【Hadoop】Hadoop 的入门概述

Yet Another Resource Negotiator 简称YARN ,另一种资源协调者,是Hadoop 的资源管理器。ResourceManager(RM):整个集群资源(内存、CPU等)的老大NodeManager(NM):单个节点服务器资源老大(每个NodeManager上可以有多个Container)ApplicationMaster(AM):单个任务运行的老大(集群上可以运行多个ApplicationMaster)

2025-05-23 23:21:05 971

原创 【安装指南】Canal 环境的安装与使用

因为 Canal 配置文件(example/instance.properties)默认是 canal/canal,如果不设置本步骤,需要修改 instance.properties 配置文件即可(可以设置为 Root 用户)。​ 实现的增量数据订阅与消费服务,其核心是通过模拟 MySQL Slave 的行为,从 Master 获取 binlog 事件并解析后投递到消息队列(如 RabbitMQ/Kafka)。缺点:会产生大量的日志,特别是在表中有大量数据更新时,binlog 体积较大。

2025-05-23 22:50:00 1538 1

原创 【MySQL】MySQL 数据库基础语法与命令全集

新增:-- 单行插入insert into 表(字段1, ..., 字段N) values (value1, ..., value N);-- 多行插入insert into 表(字段1, ..., 字段N) values查询:-- 全列查询select * from 表-- 指定列查询select 字段1,字段2... from 表-- 查询表达式字段select 字段1+100,字段2+字段3 from 表-- 别名select 字段1 别名1, 字段2 别名2 from 表。

2025-05-22 23:03:41 766

原创 【Java】JavaSE语法之抽象类和接口

Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。范例:使用Object接收所有类的对象。

2025-05-22 23:02:15 675

原创 【云计算】服务端高并发分布式结构演进之路

初期,我们需要利用我们精干的技术团队,快速将业务系统投入市场进行检验,并且可以迅速响应变化要求。但好在前期用户访问量很少,没有对我们的性能、安全等提出很高的要求,而且系统架构简单,无需专业的运维团队,所以选择单机架构(应用服务和数据库服务共用同一台服务器)是合适的。

2025-05-21 23:26:47 941

原创 【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type

【代码】【RabbitMQ】记录 InvalidDefinitionException: Java 8 date/time type。

2025-05-21 09:37:17 545

原创 【设计模式】基于 Java 语言实现工厂模式

简单⼯⼚模式是⼀种创建型设计模式,但并不属于23种设计模式之⼀,更多的是⼀种编程习惯。将产品的创建过程封装在⼀个⼯⼚类中,把创建对象的流程集中在这个⼯⼚类⾥⾯。简单⼯⼚模式的角色:描述产品的通⽤⾏为,通常由一个 Java 接口或一个 Java 抽象类定义。具体产品:实现抽象产品接⼝或继承抽象产品类。负责创建产品,根据传递的不同参数创建不同的产品示例。

2025-05-20 21:08:10 1380

原创 【设计模式】基于 Java 语言的单例模式

单例模式是⼀种, 它的核⼼思想是只有⼀个实例的意思是,在整个应⽤程序中,只存在该类的⼀个实例对象,⽽不是创建多个相同类型的对象。全局访问点的意思是,为了让其他类能够获取到这个唯⼀实例,该类提供了⼀个全局访问点(通常是⼀个静态⽅法),通过这个⽅法就能获得实例。

2025-05-20 21:05:30 869

原创 【Java】计算机发展简史

计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。 人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待大家的努力。

2025-05-19 23:36:47 999

原创 【安装指南】Tomcat 服务器的安装与使用

实际开发中我们的 HTML 可能不止一个, 依赖的 CSS / JavaScript 文件也可能比较多. 这个时候就不适合全都拷贝到 webapps/ROOT 目录中了(这就会显的比较乱).我们可以创建一个单独的目录, 和 ROOT 并列, 来存放我们要部署的内容.浏览器解析 hello2.html, 其中的 link 标签, img 标签, script 标签都会分别触发一次 GET 请求. 请求的 路径 分别为 /style.css , /doge.jpg , /app.js。

2025-05-19 23:34:02 1269

原创 【数据结构与算法】ArrayList 与顺序表的实现

线性表是 n 个具有相同特性的数据元素的有限序列(序列就是指元素之间是有顺序的)。若存在多个元素,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列。线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表:是用一段物理地址连续的存储单元依次存储数据元素的线性结构。

2025-05-18 22:40:32 1080

原创 【LangChain4J 】LangChain4J 第一弹:基于数据持久化实现情感分析

LangChain4j 是一个让Java开发者轻松玩转大模型的工具包,像搭积木一样组合各种AI功能!这篇教你5分钟搞定接入“

2025-05-18 19:22:43 1002

原创 【AI】SpringAI 第二弹:基于多模型实现流式输出

本文介绍了流式输出的概念及其优势,包括低延迟、资源高效和良好的用户体验。通过多模型实现流式输出,文章详细说明了如何添加相关依赖、设置配置文件以及代码实现。具体展示了OllamaController、QianFanController和BaiLianController的流式输出实现,并介绍了Flux在Spring WebFlux框架中的作用。此外,文章还探讨了Reactor模型的特征和实现方式,以及通过SSE协议实现流式输出的方法。

2025-05-17 20:12:33 1179

原创 【前端三剑客】万字总结HTML超文本标记语言

HTML 指的是超文本标记语言 (Hyper Text Markup Language) ,它是用来描述网页的一种语言。HTML 不是一种编程语言,而是一种标记语言 (markup language)。标记语言是一套标记标签 (markup tag)。所谓超文本,有 2 层含义:1. 它可以加入图片、声音、动画、多媒体等内容(超越了文本限制 )。2. 它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接(超级链接文本 )。

2025-05-16 17:22:23 1064

原创 【前端三剑客】CSS 基础语法第二弹

使用方法:创建项目 → 输入 项目名称、项目类型 Web → 单击按钮【创建项目】 → 单击按钮【添加】,导入设计稿。默认情况:盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸。内边距 – padding(出现在内容与盒子边缘之间)属性值:边框线粗细 线条样式 颜色(不区分顺序)属性值:边框线粗细 线条样式 颜色(不区分顺序)作用:设置 内容 与 盒子边缘 之间的距离。,用来 设置伪元素的内容,如果没有内容,则。清除标签默认的样式,比如:默认的内外边距。

2025-05-16 17:20:24 926

原创 【云计算】容器技术的发展史(超全)

容器技术的发展经历了从Jail时代到云时代,再到云原生时代的演变。1979年,贝尔实验室发明了chroot,开启了进程隔离的先河。2000年,FreeBSD推出了Jail,进一步扩展了隔离技术。2006年,Google推出Process Containers,后更名为Control Groups(cgroups),为资源控制奠定了基础。2008年,LXC(Linux容器)推出,成为最早的容器管理器。2013年,Docker的推出彻底改变了容器技术的应用,迅速风靡全球。

2025-05-15 23:37:51 569 1

原创 【Linux】基于虚拟机实现网络的管理

本文介绍了虚拟机IP地址的配置与管理,包括查看和修改IP地址、子网掩码、网关和DNS服务器。通过命令如ipa查看IP地址,使用ping和ping6测试IPv4和IPv6的连通性。文章还详细说明了如何查看和修改网关、DNS服务器,以及如何区分和设置静态与动态IP地址。

2025-05-15 16:38:01 475 1

原创 【Linux】Linux 的管道与重定向的理解

本文主要介绍了Linux系统中的目录配置标准FHS、数据重定向操作、管道命令以及环境变量PATH的相关知识。首先,FHS规定了Linux目录结构,确保软件安装位置的统一性,避免混乱。通过tree命令可以查看目录的树状结构。其次,Linux中的数据重定向操作包括输出重定向、追加重定向和输入重定向,能够将数据从标准设备(如显示器)重定向到文件或从文件读取数据。管道命令则允许将多个命令串联,前一个命令的输出作为后一个命令的输入,类似于流水线操作。最

2025-05-14 23:45:16 1164

原创 【Linux】用户权限处理的基本操作

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。解决方案:使用chmod命令来修改目录权限。# 修改用户密码:在普通用户下输入:passwd。

2025-05-14 23:43:49 782

原创 【前端三剑客】CSS 基础语法第一弹

CSS 的主要使用场景就是美化网页,布局页面的。CSS 是层叠样式表 ( Cascading Style Sheets )的简称,有时我们也会称之为 CSS 样式表或级联样式表。CSS 是也是一种标记语言,CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。总结:CSS 最大价值: 由 HTML 专注去做结构呈现,样式交给 CSS,即 结构 ( HTML ) 与样式( CSS ) 相分离。1.2 CSS语法。

2025-05-13 23:38:41 652

原创 【前端三剑客】Ajax技术实现前端开发

AJAX 全称为Asynchronous JavaScript And XML,就是异步的JS 和XML。通过AJAX可以在浏览器中向服务器发送异步请求无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。XML 可扩展标记语言。XML 被设计用来传输和存储数据。XML 和HTML 类似,不同的是HTML 中都是预定义标签,而XML 中没有预定义标签比如说我有一个学生数据:name = "孙悟空";age = 18;gender = "男";

2025-05-13 23:37:31 1144

原创 【面试真题】王者荣耀亿级排行榜,如何设计?

在处理大规模数据时,数据库排序和Redis有序集合(zset)的应用及其面临的挑战。在数据量较小的情况下,数据库的orderby功能是有效的排序方法,但在处理亿级数据时,可能会遇到性能瓶颈。相比之下,Redis的zset因其基于内存的快速排序和良好的扩展性,更适合处理大规模且需要频繁更新的数据。

2025-05-12 17:48:00 711

原创 【并发编程】ThreadLocal 实现线程的专属本地副本

ThreadLocal 提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问 ThreadLocal 实例的时候(通过 get 或 set 方法)都有自己的、独立初始化的变量副本。ThreadLocal 实例通常是类的私有静态字段,使用它的目的是希望将状态(例如用户ID或事务ID)与线程关联起来。返回线程局部变量的初始值@Overridereturn 0;工作中不建议使用该方式,而是通过匿名内部类的方式。以匿名内部类的方式设置初始值。

2025-05-12 14:18:49 1056

原创 【软件测试】基于项目驱动的功能测试报告(持续更新)

创建一个在线交流平台,让用户能够围绕特定主题进行讨论、分享信息和建立社区(具体内容由个人自定义构思,不进行公开)

2025-05-11 22:53:41 763

原创 【并发编程】Redisson 的分布式锁

Redisson 是一个开源的用于操作 Redis 的 Java 框架。与 Jedis 和 Lettuce 等轻量级的 Redis 框架不同,它提供了更高级且功能丰富的 Redis 客户端。它提供了许多简化 Redis 操作的高级 API,并支持分布式对象、分布式锁、分布式集合等特性。Redisson 可以设置分布式锁的过期时间,从而避免锁一直被占用而导致的死锁问题。

2025-05-11 15:54:28 1347

正确的settings.xml文件,Maven 国内源配置

正确的settings.xml文件(配置了国内源)

2025-05-06

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

TA关注的人

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