自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 9.服务容错:构建高可用微服务的核心防御

微服务容错机制:熔断、降级与限流实战指南 微服务架构在带来灵活性的同时,也面临雪崩效应、流量洪峰等挑战。本文深入剖析三大核心防御机制: 熔断机制:通过状态转换(Closed→Open→Half-Open)实现服务故障隔离,对比Sentinel与Resilience4j的实现差异; 服务降级:提供快速失败、默认值等优雅降级策略,保留核心功能可用性; 流量控制:详解滑动窗口、令牌桶等算法,展示Sentinel热点限流与Resilience4j基础限流配置。 文章通过电商案例揭示雪崩效应形成过程,对比现代工具(S

2025-07-14 18:02:18 548

原创 8.服务通信:Feign深度优化 - 解密声明式调用与现代负载均衡内核

Spring Cloud OpenFeign 核心原理与实践 本文深入解析 Spring Cloud OpenFeign 的服务调用机制与负载均衡实现。主要内容包括: 声明式接口原理:通过动态代理将 HTTP 请求转化为 Java 方法调用,简化远程通信 负载均衡内核:剖析 LoadBalancerFeignClient 与 Spring Cloud LoadBalancer 的协同工作流程 性能优化实践:提供超时控制、HTTP 客户端选型等调优建议 技术选型建议优先使用 Spring Cloud Load

2025-07-14 17:58:37 1010

原创 7. 负载均衡:流量调度引擎

本文深入解析微服务架构中的负载均衡技术。作为微服务的"交通枢纽",负载均衡通过智能调度请求流量,保障系统高可用、高性能和资源优化。文章比较了集中式(如Nginx)和客户端(如Ribbon)两种实现方式,分析其优缺点及适用场景。重点介绍了轮询、加权、随机、哈希等多种负载均衡算法,包括静态算法和动态算法(如最少连接、最快响应),并探讨其适用条件。文章还揭秘了Spring Cloud Feign的负载均衡实现机制,为构建稳定高效的微服务系统提供技术指导。

2025-07-12 10:33:57 936

原创 6. 配置中心:动态管理的艺术

摘要: 配置中心是微服务架构中实现动态配置管理的核心组件,解决传统配置文件的静态局限性。主流工具包括Nacos和Spring Cloud Config,前者集成服务发现与配置管理,支持长轮询推送和MySQL存储;后者基于Git/SVN,需结合Spring Cloud Bus实现动态刷新。Nacos适合轻量高效场景,Spring Cloud Config更契合Spring生态的版本控制需求。两者均支持多环境隔离与配置热更新,选择需权衡存储方式、动态机制和运维成本。配置中心提升了系统的灵活性、稳定性与安全管控能

2025-07-12 09:07:46 756

原创 5.注册中心横向对比:Nacos vs Eureka vs Consul —— 深度解析与科学选型指南

微服务注册中心选型指南:Eureka、Consul、Nacos对比分析 本文深入对比了Spring Cloud生态下三大主流服务注册中心:Eureka、Consul和Nacos的核心特性和适用场景。从CAP理论出发,分析了各方案的差异:Eureka为AP型,保障高可用;Consul是CP型,强调强一致性;Nacos则支持AP/CP双模式切换。文章从健康检查机制、功能丰富度、生态集成、性能扩展性等维度建立评估框架,并给出具体选型建议:Eureka适合中小规模快速上手的项目,Consul适用于强一致性要求的金融

2025-07-09 16:06:21 1439

原创 4.服务注册发现:微服务的神经系统

《微服务架构下的服务注册发现机制与Eureka实战解析》 摘要:本文深入探讨微服务架构中的核心组件——服务注册发现机制,以Netflix开源的Eureka为核心研究对象。文章首先分析传统单体架构与微服务架构在服务调用上的本质差异,揭示了注册中心在动态协调、故障自愈等方面的重要作用。随后详细剖析Eureka的AP系统设计、心跳续约机制和服务发现流程等核心原理,并对比其与ZooKeeper等方案的特性差异。最后通过Spring Cloud集成实例,展示从Eureka Server搭建到服务注册发现的完整实现路径

2025-07-09 10:21:24 905

原创 3.直面分布式核心挑战:厘清概念、破解雪崩与熔断之道

摘要 微服务架构在带来灵活性的同时,也加剧了分布式系统的复杂性,服务雪崩成为主要风险。本文分析了服务雪崩的形成机制:当某个下游服务故障时,调用链会因资源阻塞而逐级崩溃,最终导致系统瘫痪。熔断器模式是应对这一问题的关键方案,通过状态机机制(关闭、打开、半开状态)快速隔离故障并自动恢复,保护系统免于连锁崩溃。其核心价值在于实现快速失败、故障隔离和自愈能力,是构建高可用微服务架构的重要防线。

2025-07-08 10:59:36 1064

原创 2.Spring Cloud生态全景解析:核心组件、能力边界与定位

Spring Cloud是基于Spring Boot构建的分布式系统工具集,将服务治理、配置管理等复杂基础设施封装为标准化组件,让开发者更专注于业务逻辑。其核心优势在于与Spring生态无缝整合、开箱即用的解决方案以及标准化抽象层,显著降低微服务开发门槛。然而,它也面临学习曲线陡峭、版本管理复杂等挑战,需权衡其适用场景。Spring Cloud适合需要快速构建分布式系统的团队,但在云原生环境中可能存在功能重叠,需结合具体需求进行技术选型。

2025-07-08 09:50:17 1164

原创 1. 微服务架构演进:从单体到SpringCloud

从单体到微服务的演进,本质是不断权衡耦合度与复杂度的过程。领域驱动设计(DDD)划分服务边界持续交付流水线支撑快速迭代混沌工程保障系统韧性。

2025-07-07 15:36:12 881

原创 Spring Boot配置优先级完全指南:实战解析覆盖规则

这篇文章系统解析了Spring Boot配置优先级机制。核心规则是"外大于内,命大于环,动大于静":外部配置优先内部,命令行参数最高,动态配置源优于静态文件。文章首先通过生产案例说明配置优先级的重要性,然后从物理位置、配置源类型、多环境配置三个维度详细剖析了优先级规则,并提供了配置验证工具。针对典型场景如开发/生产分离、容器化部署等给出了最佳实践建议。最后强调避免多位置重复配置、注意profile加载顺序等避坑要点。掌握这些配置优先级规则,可以有效预防生产事故,实现灵活的环境管理。

2025-07-07 11:16:43 1370 1

原创 Spring AI实战:三步构建带记录的对话机器人,手写Adviser优化逻辑

本文是Spring AI实战入门系列,从零开始手把手构建智能对话机器人。首先介绍基础对话实现(ChatClient流程),包括环境配置和简单API开发;然后进阶为带记忆的对话(ChatMemory);最后通过自定义Adviser实现对AI回复的精细化控制。文章采用"三步走"策略:基础对话→多轮记忆→回复定制,并展望了持久化存储、日志管控等扩展方向。通过代码示例和流程图,帮助开发者快速掌握Spring AI的核心使用方式。

2025-07-05 13:52:50 787

原创 Spring Boot 核心特性与版本演进解析

摘要: Spring Boot通过嵌入式容器和自动配置重塑Java开发范式,其演进从1.x解决基础效率、2.x拥抱响应式到3.x实现云原生革命。自动配置基于@Conditional机制,允许灵活定制;起步依赖简化库管理,但需注意版本冲突。3.x版本带来颠覆性变革:强制Java 17支持虚拟线程和Record类,迁移至Jakarta EE 9+,GraalVM原生编译使启动时间缩短至毫秒级。生产环境中,2.x到3.x迁移需谨慎评估,建议模块化渐进升级。未来趋势聚焦原生编译、虚拟线程和Serverless支持,

2025-07-04 22:55:29 726

原创 深度解析 Spring Boot 3.5.3 启动流程:从 `main()` 到应用就绪的完整旅程

Spring Boot启动过程是一个精心设计的多阶段事件驱动流程,主要包括环境准备、上下文创建、Bean加载、扩展点执行和最终就绪五个阶段。从main()方法启动到应用完全运行,Spring Boot 3.5.3版本在BootstrapContext增强和自动配置优化等方面有所改进。启动流程涉及初始化器、监听器、自动配置等核心机制,通过@SpringBootApplication注解触发配置类解析、组件扫描和自动配置。开发者可以利用扩展点如ApplicationContextInitializer和Comm

2025-07-04 18:07:08 1207

原创 从助手到引擎:AI大模型如何重塑软件开发全流程

AI大模型重塑软件开发全流程 AI大模型正从需求分析到运维监控全面重构软件开发流程。在需求阶段,AI通过语义理解生成用户故事和API设计;编码时,Copilot等工具实现智能补全与多语言迁移;测试环节,AI自动生成用例并分析故障;文档和维护阶段,模型自动生成注释、排障建议和部署脚本。 尽管效率显著提升,开发者仍需应对代码安全、技能退化、生成不可解释等挑战。未来开发者角色将转向“AI协调者”,需掌握Prompt设计、模型评估和混合流程优化能力。AI并非替代者,而是技能放大器,其价值取决于开发者如何运用。

2025-07-04 15:06:09 739

原创 Spring Boot自动装配:从“零配置”到“控全局”的核心原理揭秘

Spring Boot自动装配原理与实践 Spring Boot自动装配机制通过"约定大于配置"的设计简化了开发流程。其核心在于自动配置类(标注@AutoConfiguration)和条件注解(如@ConditionalOnClass),通过扫描META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件收集配置,再经过条件过滤和顺序执行完成Bean注册。实战案例展示了如何开发自定义s

2025-06-29 13:21:56 652

原创 LangGraph快速入门1-构建基本的聊天机器人

创建一个基本聊天机器人的工作流图,要开始,llm,回复(结束)三个节点,顺序执行,所以首先就是创建节点。这一小节搭建一个最最基本的骨架。创建节点之前要定义一个承载消息的对象 State。由于开始、结束是内置节点下面直接开始构建工作流图。这样就和dify的可视化的工作流一样了。可以通过打印工作流图片,查看流程。也可以创建一个简单的web界面。

2025-01-17 13:33:26 598

原创 最新替换docker镜像源地址

今天使用docker拉去镜像,无论我尝试了多少次,都无法成功,每次都遇到超时的问题。我甚至尝试了换了几个镜像源,但仍然没有解决这个问题。

2024-09-13 12:08:33 1132

原创 华为云服务器debain11.1 安装zerotier,并改成moon节点

看到华为云,46元一年2c2g的云服务器,果断入手。首先用它“安装zerotier,并改成moon节点”,据说可以提升两台机器之间的网速。

2024-04-12 16:31:03 2146 1

原创 最新版本Spring boot 3.2.3+Gradle 8.6+JDK17构建一个聚合工程

按照上面的选择创建项目结构如下:buildSrc\src\main\groovy\jgs.java-common.gradlebuildSrc\build.gradlejgs-dev配置文件build.gradlegradle.propertiessettings.gradlejgs-dev-common配置文件jgs-dev-pojo配置文件jgs-dev-mapper配置文件jgs-dev-service配置文件jgs-dev-a

2024-03-04 17:22:10 961

原创 AI生成一个战斗PK应用

这两天在优快云顶部栏里面看到 inscode,点进去发现“InsCode 是一个一站式的软件开发服务平台,从开发-部署-运维-运营,都可以在 InsCode 轻松完成。”,里面有个一句话生成应用的功能挺有意思。下面是我生成的应用,

2024-03-02 13:33:45 1576

原创 3.1 Spock 规范的结构(一)

Spock 规范是通过 Groovy 语言编写的,它提供了一种清晰而灵活的方式来组织测试代码。中测试类有继承Specification类,在Spock通常扩展类来添加任何需要的成员变量或方法。在上面的例子可以看出,Spock通常使用def关键字声明,并且遵循 Groovy 的方法命名规范使用givenwhen, 和then块来组织测试逻辑。

2024-03-01 15:26:13 608

原创 使用 Docker Compose 安装 MySQL

按照配置填写url,账号和密码,点击Test Connection,出现下面提示表示连接成功。参数用于指示 Docker Compose 在后台运行服务。文件来定义 MySQL 服务以及它的相关配置。这里使用IDEA侧边得Database连接数据库。创建一张表,插入两条数据,测试下。点击查询,可以看到数据库创建成功。点击OK打开一个console。运行会拉取镜像然后执行成功。

2024-03-01 11:28:29 970

原创 离谱了,sql统计过去一年的消息,但今天是2月29啊

失败原因:错误代码ORA-01847表示日期中的月份必须介于1和该月的最后一天之间。这通常发生在尝试插入或更新日期值时,日期值的月份超出了正常范围。例如,尝试将日期设置为2月30日。想必大家看出来,今天2月29,去年没有2月29。一大早系统出问题了,进入报错。,2月最后一条来个紧急版本。

2024-02-29 09:39:16 927 2

原创 编写第一个 Spock 测试

上个文章我们搭建了spring boot项目,并依赖了Spock框架,这篇文章开始书写第一个Spock测试。

2024-02-29 09:28:20 408

原创 在spring boot项目中安装与配置Spock

看到BUILD SUCCESSFUL 构建成功。右侧gradle侧边栏,点击build。首先替换仓库地址更快速的下载依赖。添加spock测试依赖。

2024-02-29 09:27:44 626

原创 使用@SpringBootTest和Spock进行测试时报错Specification ‘com.xxx.ApplicationTest‘ was not compiled

继承Specification这个类应该用.groovy文件,而我用java文件。问题出在我的 ApplicationTest.java文件上。

2024-02-28 17:49:37 366 1

原创 使用gradle创建spring项目时报错Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.3.

Spring Boot 3.2.3和我的gradle 7.5版本不兼容,我把springboot版本改成。构建成功,或者升级gradle版本也行。

2024-02-28 16:50:28 3180

原创 1.git远程仓库github增加码云双远程仓库记录贴

原因:本来使用github当做仓库管理代码,谁知道某些地方某些网络github太卡,所以想新增一个远程仓库码云,方便拉代码,记录1.登陆码云账号,配置本地git公钥获取本地公钥:cat ~/.ssh/id_rsa.pubps:如果没有,通过ssh-key生成2.解除本地github远程 git remote rm origin3.重新关联github远程git remote...

2019-12-10 23:15:40 260

空空如也

空空如也

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

TA关注的人

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