自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MCN的博客

Java Spring SpringBoot SpringCloud

  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringCloud Feign 全局Fallback实现【SpringBoot2.7+】

制作一个sarter实现 Feign 全局Fallback 断路器使用Resilience4J,默认情况开启断路器就启用全局fallback,可通过feign.circuitbreaker.globalfallbackenabled=true关闭全局fallback。直接上代码。

2022-12-22 21:12:59 2267 3

原创 SpringBoot2.7+ 动态数据数据源以及多数据源自动配置

内容包括动态数据源以及多数据源的自动配置包括jpa和mybatis,包含源码以及使用方法。动态数据源开关和jpa多数据源开关以及mybatis多数据源开关三者同时只能开启一个当三个开关都没开启时,默认会使用动态数据源模式jpa和mybatis的多数据源配置基本一样,引入不同的依赖就行了httpshttps。......

2022-08-19 18:25:17 3733

原创 解决springboot2.6版本以上使用默认的path_pattern路径匹配模式不兼容swagger问题

springboot2.6+使用默认path_pattern路径匹配模式不兼容swagger

2022-07-14 18:47:59 3927 2

原创 Elasticsearch collapse 的使用场景及作用机制

在 Elasticsearch 查询中,collapse(字段折叠)用于对指定字段的值进行分组,每组只返回一个文档。它的作用类似于 SQL 里的 GROUP BY,但 collapse 不会聚合所有字段,而是仅折叠查询结果的显示方式。业务场景推荐使用只想展示每个分组的一个结果,如每家公司最多一个职位✅ collapse需要统计各分组的所有数据,如统计不同公司的职位总数❌ 使用 terms 聚合需要分页且分组后仍能正确分页❌ terms 聚合 或 search_after。

2025-04-02 09:10:08 615

原创 OSI 七层模型和四层模型(TCP/IP 模型)

OSI 七层模型更详细,理论性强,结构清晰,但应用较少。TCP/IP 四层模型更实际,直接应用于互联网协议栈,更符合现实的网络通信流程。高层设备(应用层 - 传输层):服务器、网关、负载均衡器、代理服务器等。中间层设备(网络层):路由器、防火墙等。底层设备(数据链路层 - 物理层):交换机、无线 AP、网桥、集线器、网卡等。在现代网络架构中,许多设备(如防火墙、多层交换机、路由器)都融合了多个网络层的功能,并支持智能流量管理。

2025-03-28 18:18:03 856

原创 UML(统一建模语言)中总共有哪些图

结构图(Structural Diagrams) - 用于描述系统的静态结构行为图(Behavioral Diagrams) - 用于描述系统的动态行为类型UML 图作用使用场景结构图类图描述类及其关系系统设计、数据库设计对象图类图的实例化运行时快照、调试组件图模块化设计 软件架构、模块依赖部署图物理部署分布式系统部署复合结构图类的内部结构复杂类的细节设计包图组织 UML 模型大型系统的模块化配置文件图UML 扩展行业定制化建模行为图用例图功能需求。

2025-03-19 15:47:15 580

原创 结构化分析方法有哪些图

结构化分析方法主要使用一系列图表来直观地表示系统的功能、数据流、模块划分等。图表作用适用阶段数据流图(DFD)描述数据流需求分析ER图设计数据库结构数据库建模状态转换图(STD)描述状态变化需求分析、详细设计层次图(HIPO)展示系统功能层次需求分析、概要设计程序流程图逻辑流程控制详细设计、算法分析结构图(Structure Chart)模块调用关系详细设计。

2025-03-19 15:32:20 909

原创 主要的软件开发方法

软件开发方法主要包括瀑布模型、敏捷开发、原型开发、面向对象开发方法、测试驱动开发(TDD)以及DevOps等。这些方法各有侧重点,适用于不同场景和需求,通过流程优化或技术创新提升软件开发的效率和质量。如何选择合适的方法?开发方法适用项目优点缺点瀑布模型需求明确、变更少的大型项目结构清晰、文档完善变更成本高、进度难调整敏捷开发互联网、初创项目快速迭代、适应需求变化需要高协作,文档可能不足Scrum团队协作开发透明度高、灵活调整需要良好Scrum Master管理看板。

2025-03-19 11:30:55 493

原创 PostgreSQL 和 MySQL 区别

PostgreSQL 和 MySQL 是两种流行的关系型数据库管理系统,它们在架构、功能、性能等方面各有优劣,具体选择要看你的业务需求。选 PostgreSQL,如果你的业务需要:✅ 复杂 SQL 查询、数据分析、大量 JSON 处理、GIS 计算、事务一致性高的金融/支付系统。✅ 可扩展性、插件支持强的数据库,例如多租户 SaaS、分布式数据库方案。选 MySQL,如果你的业务需要:✅ 轻量级、高并发、低延迟的小型 Web 系统、电商、社交媒体等互联网应用。

2025-03-14 11:27:53 1023

原创 Deepsearch 、Rag 、RraphRag

DeepSearch、RAG(Retrieval-Augmented Generation)和 GraphRAG 这三种技术在智能检索、信息增强和知识推理方面各有侧重,适用于不同的场景。下面分别介绍它们的特点、区别以及适用场景,并提供如何选择的建议。DeepSearch → 精准检索,适用于知识库、搜索引擎。RAG → 检索增强生成,适用于 AI 问答、文本总结。GraphRAG → 结合知识图谱,适用于复杂推理任务。

2025-03-13 11:50:51 891

原创 jsonl与json区别

JSONL(JSON Lines) 和 JSON 都是 JSON(JavaScript Object Notation)格式的变体,但它们的结构和使用场景有所不同。✅ JSON 适用于:结构化、小规模数据,一次性加载解析。✅ JSONL 适用于:大规模数据、流式处理,每行是独立 JSON。如果你的数据量很大,或者是日志流式数据(比如 RAG 应用存储检索数据),建议使用 JSONL。

2025-03-13 10:59:58 339

原创 MongoDB Vs Elasticsearch

MongoDB 和 Elasticsearch 在存储、查询方式、使用场景等方面有较大区别,以下是它们的核心区别、各自优缺点以及实际使用中的选择建议。需求选择 MongoDB选择 Elasticsearch高频写入、实时存储✅ 适合❌ 写入较慢全文搜索、模糊匹配❌ 支持有限✅ 倒排索引更快数据一致性(事务)✅ 支持 ACID❌ 最终一致性高吞吐日志处理✅ 适合✅ 适合实时搜索❌ 查询慢✅ 毫秒级搜索向量搜索(AI 推荐)❌ 不适合✅ 支持 ANN单独使用 MongoDB。

2025-03-12 18:09:38 1708

原创 Go语言为什么运行比Java快

Go 和 Java 是两种广泛应用的编程语言,它们在语言特性、性能、生态、应用场景等方面存在显著区别。以下是它们的核心区别,以及在实际开发中的选择建议。需求选择 Go选择 Java高性能、高并发✅ Goroutine 更轻量,适合高并发适合 JIT 优化后长期运行的应用快速启动、轻量部署✅ 二进制文件可直接运行JVM 需要额外启动时间微服务架构✅ 云原生,轻量级✅ Spring Cloud,企业级微服务大数据处理❌ Go 生态较少✅ Spark、Flink 等生态完善。

2025-03-12 17:44:15 885

原创 常用开源MQ组件对比

常用的开源mq组件有RabbitMQ、Kafka、RocketMQ、ActiveMQ、Pulsar。RabbitMQ适合 事务、可靠性高、低延迟 的业务(如支付、订单)。Kafka适合 大规模日志收集、流式计算、高吞吐 的业务(如监控、日志)。RocketMQ介于两者之间,适合 高吞吐+事务(如电商、金融)。ActiveMQ适合 传统企业级 Java EE 项目(JMS 兼容)。Pulsar适合 云原生架构,低延迟+高吞吐(比 Kafka 易管理)。如果你的业务不确定,

2025-03-11 10:35:01 859

原创 MySQL 与 MongoDB 的区别

在当今数据驱动的世界中,数据库技术扮演着至关重要的角色,它们为应用程序提供了存储、管理和检索数据的基础设施。MySQL 和 MongoDB 作为两种广泛使用的数据库管理系统,分别代表了关系型数据库(SQL)和非关系型数据库(NoSQL)的典型范例。MySQL 是一种成熟的关系型数据库管理系统(RDBMS),自1995年问世以来,凭借其稳定性、可靠性和易用性,成为了许多企业和开发者的首选。

2025-03-11 10:16:25 763

原创 如何选择开源向量数据库

选择开源向量数据库时,需要综合考虑查询性能、数据规模、索引构建速度、生态支持等多个因素,以下是关键的评估维度:选择开源向量数据库时,需要综合考虑查询性能、数据规模、索引构建速度、生态支持等多个因素,以下是关键的评估维度:

2025-03-09 13:25:17 520

原创 五大流程引擎对比

主流的流程引擎包括 Activiti, Camunda, Flowable, JBoss jBPM, Bonita 等,它们有各自的特点和应用场景。小型和中型企业:可以考虑Activiti或Flowable,由于其轻量级和易于集成的特点。大型企业或复杂流程:推荐Camunda或jBPM,它们在可扩展性和流程复杂度处理上表现更好。需要图形化工具和丰富插件的应用:可考虑Bonita BPM。

2025-02-18 11:48:25 396

原创 什么是蒸馏大型语言模型

蒸馏大型语言模型(Distillation of Large Language Models, LLMs)是一种知识压缩技术,用于将一个大型、计算量大、性能优秀的模型(通常称为“教师模型”)的知识迁移到一个较小、较高效的模型(称为“学生模型”)。目标是通过蒸馏过程使得较小的模型能够在性能上接近大型模型,同时显著降低计算和存储的需求。蒸馏大型语言模型的目的是在保持性能的同时减小模型的规模和计算需求,使得即便在资源有限的设备上也能够高效运行。

2025-02-10 18:33:53 879

原创 结构化布线系统分为六个子系统

结构化布线系统是一种用于现代建筑中的综合布线体系,通过标准化的设计和施工为各种通信和信息设备提供连接。它通常被划分为六个子系统,每个子系统都有特定的功能和用途。功能:负责终端设备(如计算机、电话、打印机等)与信息插座的连接。组成:信息插座(如RJ45接口)跳线或终端连接线特点:位于用户终端的物理区域内。提供灵活的设备接入点,便于设备的移动和更换。这些子系统共同组成了一个完整的结构化布线系统,各自承担不同的功能并相互协作。

2025-01-23 16:22:57 1114

原创 RAG与GraphRAG的区别

RAG (Retrieval-Augmented Generation) 和 GraphRAG (Graph-Based Retrieval-Augmented Generation) 是两种用于生成增强型问答的技术,但它们的核心数据结构和适用场景有所不同。GraphRAG 的适用性强于 RAG 的场景多跳推理:涉及多个实体和关系时(如知识图谱、社交网络)。多条件约束:需要同时满足多个条件或属性筛选(如推荐系统)。复杂关系查询:需要显式路径推理的场景,避免生成模型逻辑混乱。建议。

2025-01-23 10:39:50 1404

原创 时序数据库的使用场景

时序数据库(Time Series Database, TSDB)是一种专门设计用于存储和处理时序数据的数据库。时序数据是指按照时间顺序排列的数据,其中每个数据点通常包含时间戳和与之关联的多个指标(例如温度、压力、股票价格等)时序数据库是针对时间序列数据量大、写入频繁、查询按时间范围等特点进行优化的数据库。它在物联网、监控、金融、能源、网络、健康等领域有广泛应用,适用于存储、查询和分析大量实时产生的时间相关数据。

2025-01-21 14:30:14 1090

原创 什么是本体

其目的是通过标准化的方式表达事物的概念及其之间的关系。它常用于语义网、知识图谱和人工智能等领域。

2025-01-21 11:00:51 287

原创 Big-endian(大端字节序)与Little-endian(小端字节序)区别

BIG_ENDIAN 和 LITTLE_ENDIAN 是两种不同的字节序(Byte Order)表示方式,用于指定数据在内存中存储的顺序。字节序指的是多字节数据类型(如int, long, float等)在计算机内存中的存储顺序。Big-endian(大端字节序):最高有效字节(Most Significant Byte, MSB)存储在内存的低地址,最低有效字节(Least Significant Byte, LSB)存储在内存的高地址。Little-endian(小端字节序)

2025-01-17 15:25:48 1046

原创 Rocksdb的原理及使用场景

高写入负载如果系统需要处理大量的写入操作并保持低延迟的响应,RocksDB是非常适合的选择。低延迟读取对于需要快速读取数据的系统,RocksDB可以提供低延迟的访问。大规模数据集当需要处理大规模数据集并进行高效索引和查询时,RocksDB能够提供良好的性能。嵌入式应用在需要嵌入式键值存储并具有持久化功能的场景下,RocksDB非常合适。

2025-01-17 10:53:39 1195

原创 Elasticsearch的function_score与rescore的区别

在 Elasticsearch 中,function_score 和 rescore 都是对查询结果进行评分调整的机制,但它们的用途、作用范围和执行阶段有所不同。function_score 更适合在查询阶段调整所有匹配文档的评分,用于基于字段或业务规则的动态评分调整。rescore 更适合在初步筛选后的精细排序,用于复杂的二次排序逻辑(例如短语匹配或基于机器学习的重新打分)。如果你需要动态调整所有文档的评分,使用 function_score。

2025-01-16 15:26:14 1186

原创 OpenID与oauth2.1有什么区别联系

OpenID和OAuth 2.1是两个不同但相关的协议,它们解决的需求和用途不同。OAuth 2.1谁在使用用户身份验证核心令牌ID Token(用户信息)构建目标验证身份使用关系基于 OAuth 2.0 扩展实际场景举例::用户通过 Google 登录你的应用,并获得用户的姓名和电子邮件。OAuth 2.1:你的应用请求访问用户的 Google Drive 文件,需要用户授权访问权限。

2025-01-14 16:18:59 801

原创 贪心、回溯、动态规划、分治算法的区别(附Java代码)

贪心、回溯、动态规划、分治算法都是常见的算法思想,主要区别在于它们解决问题的方式和适用的场景。

2025-01-10 15:06:50 1000

原创 PKCE(Proof Key for Code Exchange)六大使用场景

PKCE 的主要使用场景单页应用(SPA)移动应用(Native App)桌面应用第三方应用集成安全增强(在可信客户端中)符合 OAuth2.1 新规范通过 PKCE,可以显著提升 OAuth 2.0 授权码模式的安全性,特别是在无法安全存储 client_secret 的客户端中,是必不可少的机制。

2025-01-10 10:20:13 1159

原创 ×(笛卡尔积)、⋈(自然连接/连接) 的区别

笛卡尔积(×)和自然连接(⋈)是两种不同的关系操作符,广泛用于数据库和关系代数中。特性笛卡尔积 (×)自然连接 (⋈)操作方式将两个表的每一行配对,返回所有组合结果根据相同列名的值匹配行,并合并重复列结果行数行数是两个表行数的乘积 (m * p)只有两个表中具有匹配列值的行才会被返回结果列数列数是两个表列数的总和 (n + q)去除重复列,只保留一个匹配列典型用途用于组合所有可能的行对,例如在数据生成或分析时用于基于共享列进行的表连接,例如联合查询效率。

2025-01-10 10:17:57 1394

原创 SpringCloud Feign 全局Fallback的另一种实现方式(SpringBoot3.4+)

之前在SpringBoot2.7+中实现全局Fallback方式较为复杂,且是从Feign入手,现在从断路器入手,通过捕获异常方式实现。注意:这里基于SpringBoot3.4实现的,如果是2.7那么又会复杂一点,原因是内置的Resilience4JCircuitBreakerFactory实现的接口未返回接口CircuitBreaker而是实现Resilience4JCircuitBreaker,在3.4版本已修正为接口CircuitBreaker。

2025-01-08 18:08:26 538

原创 常用的排序算法(Java版)

排序算法有很多,这里列出最常用的一些,如选择排序、插入、冒泡等。稳定性:待排序数据中有相同的数,排序之后相同的数与排序前的前后位置关系不变,则成为稳定排序算法。比如我们有一组数据2,9,3,4,8,3;按照大小排序之后就是2,3,3,4,8,9;两个3的前后顺序在排序前后保持不变,即稳定。排序算法最佳时间复杂度平均时间复杂度最坏时间复杂度稳定性空间复杂度选择排序O(N^2)O(N^2)O(N^2)不稳定O(1)插入排序O(N)O(N^2)O(N^2)稳定O(1)

2025-01-08 17:15:03 624

原创 力扣算法合集

【代码】力扣算法合集。

2024-09-09 21:00:24 170

原创 2024年华为OD E卷

输入两个正整数n,m,编号1~n围成一圈的人,从1开始报数,数到m,m就退出,当剩下的人少与m时停止报数,并按从小到大的顺序输出剩下的人在原来的位置的编号?输出:34,45,97。

2024-09-02 14:12:08 1186 1

原创 Zookeeper3.8.3 java client示例

【代码】Zookeeper3.8.3 java client示例。

2023-12-21 15:48:36 496

原创 Nginx的location路径与proxy_pass匹配规则

若proxy_pass代理地址端口后无任何字符,则转发后地址为:代理地址+访问的pathlocationproxy_pass代理路径/api//api//api/api若proxy_pass代理地址端口后有目录(包括"/"),则转发后地址为:代理地址+访问的path去除location匹配的路径locationproxy_pass代理路径/api//api//api/api。

2023-12-21 15:39:16 1777

原创 BIO NIO AIO之间的区别与联系

Unix系统下的五种基本I/O模型blocking I/O(同步阻塞IO,BIO)nonblocking I/O(同步非阻塞IO,NIO)I/O multiplexing (I/O多路复用)signal driven I/O(信号驱动I/O)asynchronous I/O(异步I/O,AIO)当一次网络IO发生时,主要涉及到三个对象:发起此次IO操作的Process或者Application系统内核kernel。

2023-06-05 12:19:43 1262

原创 Spring Cloud Gateway内置的断言和过滤器作用

对应解版本3.1.7对应SpringCloud版本2021.0.7

2023-05-25 17:25:28 1047

原创 分析connection reset by peer, socket write error错误原因

问题来源于一个http的文件上传接口,接口会先对一些参数签名进行校验,参数签名通过之后才会取出InputStream,将文件数据保存起来。如果参数校验失败或者检查到文件已经存在(参数上会带md5),则直接返回了错误信息。实际上大多数情况挺正常的,但是偶尔在客户端会出现“connection reset by peer, socket write error”。这个错误通过搜索引擎找了答案,都不能解释遇到的现象,只有尝试着猜测和重现了。

2023-05-23 10:30:04 2561

原创 redis的两种持久化方式

整个重写操作是绝对安全的,因为 Redis 在创建新 AOF 文件的过程中,会继续将命令追加到现有的 AOF 文件里面,即使重写过程中发生停机,现有的 AOF 文件也不会丢失。AOF 文件是一个只进行追加操作的日志文件(append only log), 因此对 AOF 文件的写入不需要进行 seek , 即使日志因为某些原因而包含了未写入完整的命令(比如写入时磁盘已满,写入中途停机,等等), redis-check-aof 工具也可以轻易地修复这种问题。为了压缩aof的持久化文件。所以,让缓存永不过期。

2023-05-23 10:16:22 415

原创 Spring Cloud Gateway使用及原理解析

随着人Zuul2的不断跳票,Spring官方推出高性能网关Spring Cloud Gateway,使用Netty通信,reactor反应式框架编程。本文就介绍了该网关的基础内容以及进阶使用。讲解版本3.1.4对应SpringCloud版本2021.0.5

2023-05-21 16:10:05 1012

CAD图纸解析全套工具(java版)

使用java语言kabeja及batik-all等依赖 附demo样例

2023-08-02

async-profiler-2.8.3-linux-x64.tar

async-profiler-2.8.3-linux-x64.tar

2022-10-13

颜色拾取器颜色拾取器颜色拾取器

这是一个可以拾取颜色的拾取器,点一下就可以了,这是一个可以拾取颜色的拾取器,点一下就可以了.这是一个可以拾取颜色的拾取器,点一下就可以了,这是一个可以拾取颜色的拾取器,点一下就可以了

2017-11-01

空空如也

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

TA关注的人

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