自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 服务保护和分布式事务

文章摘要: 微服务架构面临的关键问题包括业务健壮性和级联失败导致的雪崩问题。本文提出微服务保护方案,通过Sentinel框架实现请求限流、线程隔离和服务熔断三种保护机制。请求限流控制突发流量,线程隔离采用舱壁模式限制资源影响范围,服务熔断结合异常统计自动触发降级逻辑。同时针对分布式事务问题,引入Seata框架提供XA和AT两种解决方案:XA模式基于两阶段提交保证强一致性,AT模式通过数据快照实现高效最终一致。测试表明这些方案有效解决了微服务间的故障隔离和事务一致性问题,保障了系统稳定性。

2025-07-01 09:43:49 765

原创 网关路由、网关登录校验、配置管理

网关作为网络关口,负责请求路由转发和安全校验,Spring Cloud Gateway是当前主流实现方案。文章详细讲解了网关路由配置、登录校验流程实现,通过JWT工具和全局过滤器完成身份验证。同时阐述了配置管理的必要性,利用Nacos实现配置共享、热更新和动态路由功能,包括:网关路由配置与登录校验机制配置热更新实现业务参数动态调整Nacos配置中心管理共享配置动态路由监听配置变更技术方案 通过网关统一处理安全校验和请求转发,结合Nacos配置中心实现配置动态管理,有效解决了微服务架构中的安全、配置

2025-06-24 11:13:51 728

原创 服务调用、服务注册和发现、OpenFeign

本文介绍了微服务架构中的远程调用解决方案。首先分析了购物车服务调用商品服务的问题,提出了使用RPC实现跨服务调用的方案。然后详细讲解了三种主要实现方式: RestTemplate实现HTTP远程调用 结合Nacos注册中心实现服务发现与负载均衡 使用OpenFeign简化远程调用代码 文章重点介绍了OpenFeign的使用,包括客户端编写、连接池优化、最佳实践(抽取公共模块)、日志配置等。通过这三种方案,可以解决微服务架构中的服务注册发现、负载均衡、远程调用等问题,最终实现高效、简洁的微服务间通信。

2025-06-23 14:35:19 573

原创 Docker

这就是匿名卷。然后,我们再看结果中的。

2025-06-23 10:21:35 922

原创 Git命令指南

git commit -m "commit message":将暂存区的文件提交到本地仓库。git add [file_name]:将文件添加到暂存区。[file_name]是你要添加的文件名,如果要添加所有修改过的文件,可以使用git add .git diff:查看工作区和暂存区(已经通过 git add 添加到暂存区的内容)之间的差异。git cherry-pick [commit]:拣选提交到当前分支,合并特定提交时用。git remote add [name] [url]:添加远程仓库。

2025-06-19 01:10:26 183

原创 Spring AI快速入门

【代码】Spring AI快速入门。

2025-05-06 19:57:10 401

原创 Spring中的八大模式

Spring 中配置 DataSource 的时候,这些dataSource可能是各种不同类型的,比如不同的数据库:Oracle、SQL Server、MySQL等,也可能是不同的数据源:比如apache 提供的org.apache.commons.dbcp.BasicDataSource、spring提供的org.springframework.jndi.JndiObjectFactoryBean等。调用不同的方法,适应行为的变化 ,强调父类的调用子类的特性。Spring用的是双重判断加锁的单例模式。

2025-04-29 14:29:21 579

原创 JWT令牌

JWT的定义、JWT在项目中使用

2025-04-28 11:31:11 408

原创 Elasticsearch

JavaRestClient操作elasticsearch的流程基本类似。核心是方法来获取索引库的操作对象。索引库操作的基本步骤:初始化创建XxxIndexRequest。XXX是CreateGetDelete准备请求参数(Create时需要,其它是无参,可以省略)发送请求。调用方法,xxx是createexistsdelete。

2025-04-02 21:40:22 1047

原创 MQ(消息队列)高级

每个只能配置一个,因此我们可以在配置类中统一设置。@Slf4j@Overridelog.error("触发return callback,");});由于每个消息发送时的处理逻辑不一定相同,因此ConfirmCallback需要在每次发消息时定义。具体来说,是在调用RabbitTemplate中的convertAndSend方法时,多传递一个参数:id:消息的唯一标示,MQ对不同的消息的回执以此做判断,避免混淆:回执结果的Future对象将来MQ的回执就会通过这个。

2025-04-01 21:46:11 689

原创 MessageQueue(简称:MQ)基础

Spring的消息发送代码接收的消息体是一个Object,而在数据传输时,它会把你发送的消息序列化为字节发送给MQ,接收消息的时候,还会把字节反序列化为Java对象。但是,在某些场景下,我们希望不同的消息被不同的队列消费。使用场景:当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!广播,将消息交给所有绑定到交换机的队列。

2025-03-30 22:47:28 889

原创 VUE--路由

代码如下divclass"app"h2class"title"h2divclass"navigate"RouterLinkto"/home""active"RouterLinkRouterLinkto"/news""active"RouterLinkRouterLinkto"/about""active"RouterLinkdivdivclassRouterViewRouterViewdivdivscriptlang"ts"setupname"App"importRouterLinkRouterView。

2024-12-31 23:50:38 939

原创 Vue3核心语法

点我+1

2024-12-26 23:41:43 1110

原创 创建vue3工程

备注:目前vue-cli已处于维护模式,官方推荐基于Vite创建项目。

2024-12-26 22:40:35 390

原创 外部化配置

SpringBoot框架默认的配置文件:application.properties。

2024-12-04 19:02:38 1118

原创 Date类型转Json字符串

格式可按照字段单独配置(比较灵活),也可全局配置(比较便捷),下面分别介绍。类型的字段在序列化成JSON字符串时,需要考虑两个点,分别是。时区同样可按照字段单独配置,也可全局配置,下面分别介绍。

2024-11-12 16:41:40 473

原创 Redis部署及相关常用命令

Redis(Remote Dictionary Server)是一个基于内存的键值对存储系统,常用作缓存服务。由于Reids将数据都保存在内存中,因此其读写性能十分惊人,同时,为保证数据的可靠性,Redis会将数据备份到硬盘上,用于故障发生时的数据恢复。2、Redis特点高性能:Redis主要将数据存储在内存中,因此读写速度非常快,适合对速度有较高要求的场景。支持多种数据结构:Redis中键值对的值(Value)支持多种数据结构,如字符串、哈希表、列表、集合等,这使得它可以应用于多种不同的场景。持久化。

2024-11-09 16:17:14 1159

原创 类型转换问题

LabelInfo实体类如下枚举类如下前后端交互所传递的数据中字段为(1/2)。数据库中的字段为tinyint类型。

2024-11-09 13:28:20 1076

原创 序列化与反序列化

序列化指的是将对象转换为字节流的过程。通过这个过程,对象可以被保存到磁盘或通过网络传输。:反序列化则是序列化的逆过程,即从字节流恢复成原来的对象。

2024-11-08 11:34:42 600

原创 默认值设置与自动填充功能

上篇文章,我们提到了逻辑删除的概念,因此,我们在插入数据的时候,总是得把is_delete设置为0,然后再执行插入数据操作,为了简便,我们可以把数据库(MySQL)中的。自动填充,就是通过统一配置,在插入或更新数据时,自动为某些字段赋值,无需手动赋值。在做完上述配置后,当写入数据时,Mybatis-Plus会自动将实体对象的。FieldFill.INSERT:插入时自动填充。FieldFill.UPDATE:更新时自动填充。字段填充为当前时间,当更新数据时,则会自动将实体对象的。字段填充为当前时间。

2024-11-08 01:00:00 594

原创 逻辑删除(Logical Delete)

是一种数据管理技术,用于在数据库中标记数据为“已删除”,而不是从数据库中完全删除。通常通过在数据库表中添加一个额外的字段(如is_deleted)来实现。当一条记录被逻辑删除时,这个字段会被设置为一个特定的值(例如:0->未删除,1->已删除),而不是从数据库中移除该记录。若数据库中的表采用逻辑删除策略,所以查询数据时均需要增加过滤条件。为简化上述操作,可以使用Mybatis-Plus提供的逻辑删除功能,它可以自动为查询操作增加过滤条件,并将删除操作转为更新语句。

2024-11-08 00:45:00 771

原创 学会Knife4j,高效开发

Knife4j的使用也十分简单,我们只需使用几个简单注解,对接口进行描述,Knife4j就能自动生成API文档了。注解用于描述作为接口参数或者返回值的实体类的数据结构。结束啦,是不是很简单呢?启动SpringBoot项目,访问。用于对HTTP请求参数进行描述。注解用于对接口进行分类,相同。的接口会放在同一个菜单。用于对接口进行描述。

2024-11-07 15:55:25 540 1

原创 MinIO快速入门

对象是实际的数据单元,例如我们上传的一个图片。存储桶是用于组织对象的命名空间,类似于文件夹。每个存储桶可以包含多个对象。端点是MinIO服务器的网络地址,用于访问存储桶和对象,例如是用于标识和验证访问者身份的唯一标识符,相当于用户名。是与关联的密码,用于验证访问者的身份通过以下命令可直接将安装包下载至服务器Systemd所管理的服务需要由一个配置文件进行描述,这些配置文件均位于或者目录下,下面创建MinIO服务的配置文件。执行以下命令创建并打开文件重点关注上述文件中的以下内容即可。

2024-11-07 15:41:48 2781

空空如也

空空如也

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

TA关注的人

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