自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rabbitmq

你可以把这个队列想象成一个停车场,只不过这个停车场是先进先出的,先来的车停在前面。这里的 "阻塞" 的意思是,如果停车场是空的,想要从里面取车的车辆(后面的处理逻辑)会一直等待,直到有车开进来。想象一下这样的场景:用户创建了一个订单,但是过了一段时间(比如 15 秒)没有付款,我们希望自动取消这个订单。这个方法应该会执行实际的取消订单的逻辑,比如更新数据库中的订单状态等等。当 15 秒的延迟时间到了,Redisson 内部的机制会将之前放入延迟队列的订单 ID 取出来,并把它放回。这个队列中取出一个元素。

2025-05-14 11:32:26 1039 1

原创 XA协议和Tcc

两阶段提交(2PC)是一种分布式事务协议,旨在确保多个参与者(如不同数据库)在事务中要么全部提交,要么全部回滚,以维护数据一致性。2PC分为准备阶段和提交/回滚阶段,由协调者管理事务流程,参与者执行本地操作并反馈状态。尽管2PC能保证强一致性,但存在同步阻塞、单点故障和数据不一致风险等问题。相比之下,TCC(Try-Confirm-Cancel)是一种基于补偿机制的柔性事务解决方案,通过业务逻辑实现事务控制,减少资源锁定时间,提高系统并发性和可用性,但开发复杂度较高。XA协议依赖资源管理器实现事务控制,而T

2025-05-13 14:30:36 917

原创 事务传播行为(propagation behavior)

事务传播行为决定了被调用方法如何参与到调用者的事务中。以在线购物流程为例,创建订单和扣减库存通常需要在同一事务中完成。REQUIRED传播行为下,decreaseStock会加入createOrder的事务,若扣减库存失败

2025-05-13 14:27:15 788

原创 设计杂谈-工厂模式

工厂模式是一种常见的设计模式,广泛应用于各种框架中,如MyBatis。它通过封装对象的创建过程,提供更好的灵活性、可维护性和可配置性。在MyBatis中,SqlSessionFactoryBuilder和SqlSessionFactory是主要的工厂类,分别负责构建配置和创建SqlSession对象。工厂模式的好处包括解耦对象的创建和使用、提高灵活性和可配置性、隐藏对象的创建细节、控制对象的生命周期以及易于扩展和维护。通过对比不使用工厂模式和使用工厂模式的日志记录器实现,可以看出工厂模式在解耦、开闭原则、职

2025-05-12 22:21:32 1499

原创 HTTP 请求中 Content-Type 头部

HTTP请求中的Content-Type头部用于指定请求体的数据格式。常见格式包括:application/json(传输JSON数据)、application/x-www-form-urlencoded(HTML表单默认提交格式,键值对编码)、multipart/form-data(支持混合传输文本和文件,常用于文件上传)、text/plain(纯文本数据)、application/xml(XML格式数据)等。每种格式适用于不同的场景,如JSON用于结构化数据,multipart/form-data用于文

2025-05-10 11:35:04 1836

原创 docker host模式问题

iptables是一个强大的网络流量过滤和管理工具,在 Linux 系统中广泛用于设置防火墙规则、NAT、流量监控等。理解和管理iptables规则有助于确保网络的安全性和可靠性。在遇到 Docker 网络问题时,清理和重置iptables规则有时能够解决一些复杂的网络配置问题。

2025-05-07 16:40:50 756 1

原创 docker删除容器不成功问题

2.系统中可能会残留一些不再需要的 AppArmor 配置文件,执行命令sudo aa-remove-unknown 会自动扫描 AppArmor 配置文件目录,识别并删除 “未知” 的配置文件。今天在准备l笔记本的时候 把尘封很久的乌班图系统启动了 并打开了docker 心想把东西删一删 没什么用,但是碰到了删除docker容器不成功的问题。重新执行 docker stop [容器名称/容器ID] ,可以看到可以停止了。1.AppArmor 可能在进行安全策略控制。

2025-03-16 21:37:18 250 1

原创 vue3 Vetur报错:has no default export 组件没有默认导出

在vue3项目ts写法报错组件没有默认导出,这种情况代码本身没有问题,程序能正常执行,对于强迫症的我表示看得很难受。2. 不用 script setup 语法糖,改用 Options API 写法(不建议)更换支持ts的语法高亮插件Volar以取代 Vetur(推荐此方法)经过资料查询是 Vetur 暂不支持ts。

2024-12-30 13:00:27 322

原创 父子通信以及Props的使用

在 Vue 中,是指父组件和子组件之间如何传递数据。Vue 提供了几种方式来实现父子组件之间的通信,其中是最常用的一种。

2024-11-30 11:41:06 848 1

原创 java中string的intern方法

在 Java 中,String 类的 intern() 方法用于优化内存使用,它的主要作用是将字符串放入 字符串常量池(String Constant Pool) 中,或返回该池中已有的相同字符串引用。

2024-09-09 10:43:05 656 1

原创 Nginx安装

(2)直接通过ip地址(服务器ip)+端口号(默认80)3.便于管理,可以创建一个文件夹来保存(若不想的可以跳过步骤3,4)2.在Linux系统上进行下载(示例:下载1.25.1版本)注:如用方式(2)进行访问的话,记得要开放端口号。鼠标放在需要下载的版本上,右击鼠标“复制链接”出现“nginx-1.25.1”表示解压成功。示例如图片所示:(注:由于我已经下载完毕)#这是编译和安装一块进行(&&),也可以分开。4.解压包,并转换到nginx文件夹下。(1)通过命令行进行。#转换到nginx文件夹下。

2024-08-12 09:41:44 401

原创 linux安装jdk8详细步骤

发现有输入:rpm -qa | grep java 检测jdk的安装包,(注意:rpm命令符没有时记得下载一个输入:apt-get install +命令名称)最后再次:rpm -qa | grep java检查是否删除完即可(此步由于之前已经卸载,所以没有截图)接着进行一个个删除包,输入:rpm -e --nodeps +包名。3.使用xftp实现windows和linux文件传输。输入:java -version。上官网下载jdk压缩包。以上,整个安装过程结束。

2024-08-09 18:09:42 847

原创 Shiro--subject

在 Apache Shiro 中,Subject 是一个核心概念,它表示一个当前正在与应用程序交互的用户。这个用户可以是一个真实的人,也可以是一个系统账户或其他安全实体。Subject 是 Shiro 进行身份认证和权限检查的主要接口。

2024-07-25 09:37:41 562

原创 SpringSecurity--DelegatingFilterProxy工作流程

DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器,它起到了桥梁的作用,可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。

2024-07-24 17:32:45 1788 1

原创 React--异步 action creator 和 action creator的区别

异步 action creator 和普通的 action creator 都是 Redux 中用于创建 actions 的函数,但它们有不同的目的和工作方式。以下是它们的主要区别:

2024-07-23 13:40:44 564

原创 React--Action Creators

在 Redux 中,Action Creators 是专门用于创建 actions 的函数。它们简化了生成 actions 的过程,使得代码更易读和可维护。

2024-07-23 13:15:35 628

原创 React--JavaScript 的模块导出和导入机制

JavaScript 的模块导出和导入机制,尤其是在使用 ES6 模块语法时。让我们详细解释这个过程,并解决你关于导出和导入的疑问。

2024-07-23 12:59:30 549

原创 React--Redux

Redux 是一个用于 JavaScript 应用的状态管理库,特别是在 React 应用中非常流行。下面我将详细介绍一个使用 Redux 的简单案例,包括设置 Redux 环境、创建 store、定义 actions 和 reducers,以及如何连接 React 组件。

2024-07-23 12:07:24 1042

原创 React--react方法传自定义参数

在React中传递自定义参数到事件处理函数时,使用箭头函数 () => 方法() 的方式是为了确保事件处理函数在事件发生时才执行,而不是在组件渲染时就立即执行。具体原因如下:

2024-07-21 18:07:43 420

原创 设计模式--职责链模式

职责链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。

2024-07-21 09:55:12 572

原创 设计模式--策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每一个算法封装起来,使得它们可以互换。策略模式让算法的变化独立于使用算法的客户程序,使得算法的选择和使用更加灵活和可扩展。

2024-07-21 09:50:00 901

原创 设计模式--模板方法

模板方法模式(Template Method Pattern)是一种行为型设计模式。它定义了一个算法的骨架,并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。这种模式通过模板方法来控制算法的整体流程,而具体的步骤由子类实现。

2024-07-21 09:35:44 566

原创 设计模式--观察者模式

观察者模式(Observer Pattern)是一种行为型设计模式。它定义了对象之间的一种一对多依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都能得到通知并自动更新。这种模式常用于实现分布式事件处理系统。

2024-07-20 21:41:12 637

原创 Jackson 库简介--以及数据脱敏

Jackson 是一个流行的 Java JSON 处理库,它提供了将 Java 对象与 JSON 数据相互转换的功能。Jackson 的主要功能包括:

2024-07-20 21:35:01 1005

原创 设计模式--享元模式

享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享大量细粒度的对象来减少内存消耗。这个模式的核心思想是把对象的状态分为内在状态和外在状态,其中内在状态是可以共享的,而外在状态是需要独立维护的

2024-07-18 19:37:32 1467

原创 设计模式--组合模式

组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

2024-07-18 19:16:56 616

原创 设计模式--外观模式

外观模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供了一个一致的界面。外观模式定义了一个高层接口,使得子系统更加容易使用。它主要用于简化复杂系统的接口,提供一个简洁的接口给客户端使用,而隐藏系统的复杂性。

2024-07-18 09:44:48 802

原创 设计模式--适配器模式

适配器模式(adapter pattern )的原始定义是:将类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。

2024-07-17 20:34:17 826

原创 Redis--过期删除策略和数据淘汰策略

过期删除策略和数据淘汰策略

2024-07-16 20:01:06 1078

原创 redis-缓存三剑客

redis-缓存三剑客

2024-07-16 19:29:57 1124 1

原创 Redis--布隆过滤器

解决缓存穿透是构建高效缓存系统中的关键问题之一。缓存穿透指的是恶意或者非法请求经过缓存层直接访问数据库或者后端服务,导致系统资源浪费和性能下降的情况。为了有效应对缓存穿透问题,以下是几种常见的解决方法:

2024-07-16 18:47:45 1632

原创 抽象工厂模式与工厂方法(简单工厂)的区别

在软件开发中,简单工厂模式和工厂方法模式是两种常用的创建型设计模式。尽管它们都用于创建对象,但它们的实现方式和应用场景有所不同。本文将详细探讨这两种模式的区别,帮助你更好地理解和应用它们。

2024-07-14 22:12:47 2254

原创 设计模式--抽象工厂模式

在软件开发中,当我们需要创建一组相关或互相依赖的对象时,简单工厂模式和工厂方法模式可能显得力不从心。此时,抽象工厂模式(Abstract Factory Pattern)就派上用场了。本文将深入探讨抽象工厂模式,帮助你理解和应用这一强大的设计模式。

2024-07-14 21:57:14 781 1

原创 设计模式--工厂设计模式

工厂模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。这样,工厂方法模式让类的实例化延迟到子类。通过工厂方法模式,我们可以在不修改现有代码的情况下引入新的产品类,从而实现更好的扩展性和可维护性。

2024-07-14 21:38:01 483

原创 设计模式--简单(抽象)工厂模式

简单工厂模式(Simple Factory Pattern)详解

2024-07-14 21:34:53 460

原创 设计模式--单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模式保证某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。

2024-07-14 21:05:44 1353

原创 Mybatis-plus3.4.3下使用lambdaQuery报错

在 MyBatis-Plus 中,当使用 lambdaQuery().eq(CommonUser::getOpenId, openId).one() 进行查询时,如果未找到匹配的记录,不会抛出异常,而是会返回 null。

2024-07-14 16:59:38 435

原创 【无标题】

在开发基于Spring MVC的RESTful API时,有效地组织和设计端点是至关重要的。本文将介绍如何使用路径参数、请求参数对象和JSON请求体来实现灵活而清晰的API设计。

2024-07-14 15:18:06 856

原创 会话固定攻击

会话固定攻击(Session Fixation Attack)是一种网络攻击,攻击者试图诱骗受害者使用攻击者指定的会话ID,以便在受害者登录后,攻击者能够窃取受害者的会话并冒充受害者进行操作。下面是一个形象的例子来解释会话固定攻击:

2024-07-12 20:40:47 807

原创 设计模式--六大设计原则 (SOLID)

古人云: 有道无术,术可求.有术无道,止于术.而设计模式通常需要遵循一些设计原则,在设计原则的基础之上衍生出了各种各样的设计模式。设计原则是设计要求,设计模式是设计方案,使用设计模式的代码则是具体的实现。

2024-07-11 21:44:33 1485

空空如也

空空如也

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

TA关注的人

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