自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嘉禾嘉宁papa

CSDN的一股清流,来了就不会让你空手而归。

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

原创 NVM的安装与配置

NVM,全称为Node Version Manager,是一个流行的命令行工具,用于在同一台计算机上安装和管理多个版本的Node.js。Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者在服务器端运行JavaScript代码,从而构建更为动态和交互性强的Web应用程序。NVM通过提供一种简单的方法来切换不同版本的Node.js,极大地简化了Node.js开发环境的管理。

2024-04-14 15:05:41 1171

原创 RocketMQ笔记(十)SpringBoot整合RocketMQ多事务消息

在之前的文章中,我讲过了发送事务消息,好像是通过就完成了普通消息和事务消息的发送,有小伙伴就会问,如果一个系统可能不止一个事务,都会进入到同一个监听啊,有什么办法处理么?也就是多事务发送消息。自己在发生消息的时候在头部添加区分业务的属性,然后在监听器取出来,然后做不同的业务每个事务都配置单独的事务监听器(本文的方式)

2024-04-14 10:47:42 886

原创 RocketMQ笔记(九)SpringBoot整合RocketMQ消息过滤

过滤的含义指的是将符合条件的消息投递给消费者,而不是将匹配到的消息过滤掉。Apache RocketMQ 的消息过滤功能通过生产者和消费者对消息的属性、标签进行定义,并在 Apache RocketMQ 服务端根据过滤条件进行筛选匹配,将符合条件的消息投递给消费者进行消费。

2024-04-14 10:39:33 1062

原创 RocketMQ笔记(八)SpringBoot整合RocketMQ广播消费消息

在之前的文章中,我们讲过了,同步发送单条消息,异步发送单条消息,发送单向消息,发送顺序消息,批量发送消息,事务消息,我们使用的模式都是集群消费模式(Cluster),本文就来讲另外一种消息消费模式,也就是广播消费模式(Broadcast)

2024-04-07 13:42:00 1806

原创 RocketMQ笔记(七)SpringBoot整合RocketMQ发送事务消息

在之前的文章中,我讲过了,同步发送单条消息,异步发送单条消息,发送单向消息,发送顺序消息,以及批量发送消息,延迟消息。今天说下发送事务消息。事务消息交互流程如下图所示。生产者将消息发送至Apache RocketMQ服务端Apache RocketMQ服务端将消息持久化成功之后,向生产者返回Ack确认消息已经发送成功,此时消息被标记为"暂不能投递",这种状态下的消息即为半事务消息生产者开始执行本地事务逻辑生产者根据本地事务执行结果向服务端提交二次确认结果(Commit或是Rollback。

2024-04-07 13:32:57 1670

原创 RocketMQ笔记(六)SpringBoot整合RocketMQ发送延迟消息

在之前的文章中,我讲过了,同步发送单条消息,异步发送单条消息,发送单向消息,发送顺序消息,以及批量发送消息,今天我们讲讲延迟消息。延迟消息发送是指消息发送到Apache RocketMQ后,并不期望立马投递这条消息,而是延迟一定时间后才投递到Consumer进行消费。在分布式定时调度触发、任务超时处理等场景,需要实现精准、可靠的延时事件触发。使用 RocketMQ 的延时消息可以简化定时调度任务的开发逻辑,实现高性能、可扩展、高可靠的定时触发能力。

2024-04-07 13:30:01 1426

原创 RocketMQ笔记(五)SpringBoot整合RocketMQ批量发送消息

在之前的文章中,我讲过了,同步发送单条消息,异步发送单条消息,发送单向消息,发送顺序消息,今天我们讲讲如何批量发送消息,主要还是使用方法的syncSend方法。

2024-03-31 09:15:21 1559

原创 RocketMQ笔记(四)SpringBoot整合RocketMQ发送顺序消息

RocketMQ提供了一种发送顺序消息的方法,顺序消息是指消息发送和消费的顺序是有序的,即消息按照特定的顺序发送到 Broker,然后按照相同的顺序消费。这个方法就是的。

2024-03-31 09:10:51 1555

原创 RocketMQ笔记(三)SpringBoot整合RocketMQ发送单向消息

RocketMQ提供了一种单向发送消息的方法,在这种模式下,生产者只负责尽快地发送消息,而不需要关心消息是否被Broker接收,也不会收到任何消息发送结果的响应。这个方法就是的sendOneWay。

2024-03-31 09:06:27 935

原创 RocketMQ笔记(二)SpringBoot整合RocketMQ发送异步消息

SpringBoot整合RocketMQ发送异步消息

2024-03-24 23:49:27 1463

原创 RocketMQ笔记(一)SpringBoot整合RocketMQ发送同步消息

SpringBoot整合RocketMQ发送同步消息

2024-03-24 23:48:10 856 1

原创 Java开发环境JDK8和JDK17灵活切换

Java开发环境JDK8和JDK17灵活切换

2024-03-24 23:44:17 1165

原创 Flex布局常见属性图解

Flex属性详解

2024-03-01 15:52:05 2446

原创 设计模式(行为型模式)空对象模式

空对象模式(Null Object Pattern)是一种行为设计模式,它用于处理对象缺失的情况,以减少对空(null)引用的使用和处理。该模式的目标是在对象不可用或缺失时提供一个替代对象,以避免在代码中频繁检查空引用,并降低因空引用而导致的错误。空对象模式基本思想是定义一个抽象类或接口,并提供一个实现该抽象的空对象,其中包含默认的无效或不执行任何操作的方法。这样,当需要对象时,如果实际对象不存在,系统将返回一个空对象,而不是返回空引用。减少空引用检查。

2024-03-01 13:41:36 807

原创 设计模式(行为型模式)解释器模式

解释器模式(Interpreter Pattern)是一种行为设计模式,用于解释特定语言或处理特定问题领域的语法或表达式。它定义了一种语言的语法表示,并使用该表示来解释语言中的句子。通常用于构建解析器、编译器和规则评估引擎等场景。抽象表达式(Abstract Expression):定义解释器的接口,通常包含一个 interpret() 方法,用于解释语法或表达式。终结符表达式(Terminal Expression):实现抽象表达式接口,在语言中的最小单元上进行解释操作。

2024-02-19 09:10:19 1304

原创 设计模式(行为型模式)访问者模式

访问者模式(Visitor Pattern)是一种行为设计模式,它允许在不改变被访问对象的类的情况下定义新的操作。该模式的核心思想是将数据结构和对数据的操作分离开来,使得可以在不修改数据结构的前提下定义新的操作。它允许定义在数据结构上进行的操作,并且可以在数据结构上方便地增加新的操作,而无需修改原有的代码。访问者(Visitor): 定义了对数据结构中各元素的访问操作接口或抽象类。每个具体的访问者类都实现了对应的访问操作。具体访问者(Concrete Visitor)

2024-02-19 09:09:25 687

原创 设计模式(行为型模式)模板方法模式

模板方法模式又称模板模式(Template Pattern)是一种行为设计模式,它定义了一个算法的框架,并允许子类重写特定步骤的方法,而不改变算法的整体结构。在模板模式中,定义了一个抽象类,该抽象类包含了算法的框架,其中的某些步骤由抽象方法或默认实现提供。具体步骤的实现延迟到子类中。这样,子类可以根据需要重写父类的方法,同时保留算法的整体结构。模板(Abstract Template): 定义了算法的框架,通常是一个抽象类,其中包含了算法中的各个步骤,有些步骤可能是抽象的或有默认实现。

2024-02-19 09:08:28 1031

原创 设计模式(行为型模式)策略模式

策略模式(Strategy Pattern)是一种行为设计模式,它允许定义一系列算法,将每个算法封装到独立的类中,并使它们可以相互替换。这使得算法可以独立于使用它们的客户端进行变化。在策略模式中,算法被视为一个策略。这些策略被封装到各自的类中,并通过接口或抽象类暴露统一的方法,使得这些策略可以相互替换。然后,客户端可以根据需要选择使用的策略。这种模式使得算法可以独立于其使用者变化。它使得代码更加灵活、可扩展,并且更易于维护,因为新的算法可以在不修改现有客户端代码的情况下添加。

2024-02-08 11:17:52 569

原创 设计模式(行为型模式)状态模式

状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态发生改变时改变其行为。该模式主要用于根据对象的内部状态使其行为不同。在状态模式中,对象的行为会根据内部状态的变化而变化。环境(Context):环境类持有一个状态对象,并在状态对象之间进行切换。它会委托给当前状态对象处理请求。抽象状态(State):定义了一个接口或抽象类,用于封装特定状态下的行为。所有具体状态类都必须实现这个抽象状态,以便在环境对象中切换状态。具体状态(Concrete State)

2024-02-08 11:16:18 791

原创 设计模式(行为型模式)观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,其所有依赖者(观察者)都会自动收到通知并进行更新。主题(Subject): 也称为被观察者或可观察对象,维护了一组观察者对象,并提供了添加、删除和通知观察者的方法。观察者(Observer): 也称为订阅者,定义了一个更新接口或抽象类,用于接收主题的通知并进行相应的处理。

2024-02-07 10:22:05 1536

原创 设计模式(行为型模式)备忘录模式

备忘录模式(Memento Pattern)是一种行为设计模式,旨在捕获一个对象的内部状态,并在不破坏对象封装的前提下将其保存,以便稍后可以恢复到先前的状态。备忘录模式指的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,从而在需要时能将对象恢复到先前的状态。这种模式涉及三个主要角色:原发器(Originator)、备忘录(Memento)和管理者(Caretaker)。原发器(Originator):负责创建一个备忘录,并记录当前状态到备忘录对象,也可以从备忘录对象中恢复状态。

2024-02-07 10:20:41 859

原创 设计模式(行为型模式)中介者模式

中介者模式(Mediator Pattern)是一种行为设计模式,旨在减少对象之间的直接通信,通过引入一个中介对象(中介者)来集中控制和协调这些对象之间的交互。中介者模式的定义如下:中介者模式指的是使用一个中介对象来封装一系列对象之间的交互,使得对象之间不再显式地相互引用,而是通过中介者对象来进行通信。这样一来,对象之间的耦合度降低,增加新对象也更加容易,因为它们不需要知道彼此的细节,只需了解中介者的接口即可。中介者(Mediator):定义了一个接口,用于各个同事对象之间的通信。

2024-02-07 10:19:59 1952

原创 设计模式(行为型模式)迭代器模式

迭代器模式(Iterator Pattern)是一种行为设计模式,它提供一种方法来顺序访问集合对象中的各个元素,而不暴露集合的底层表示。迭代器模式通过提供一个迭代器(Iterator)接口,让客户端能够访问集合对象中的元素,而无需了解集合的内部结构。迭代器(Iterator): 定义了遍历集合元素的接口,包括访问元素、移动到下一个元素和判断是否还有下一个元素等方法。具体迭代器(Concrete Iterator): 实现了迭代器接口,在特定集合中遍历元素。聚合对象(Aggregate)

2024-02-06 17:35:42 1108

原创 设计模式(行为型模式)命令模式

命令模式(Command Pattern)是一种行为设计模式,它允许将请求或操作封装为一个单独的对象。这种模式允许参数化方法调用,将方法调用、请求或操作封装成一个对象,从而可以在不同的时间将请求排队、记录请求日志、撤销操作等。命令模式的核心思想是将请求封装成一个对象,使得请求的发送者和接收者解耦。发送者只需知道如何发送命令,并不需要知道接收者如何处理命令、何时执行命令以及具体的命令细节。命令(Command): 定义了执行操作的接口,包含了执行命令的方法。具体命令(Concrete Command)

2024-02-06 17:35:04 501

原创 设计模式(行为型模式)责任链模式

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求为止。这种模式解耦了发送者和接收者之间的关系,允许多个对象对请求进行处理,但发送者无需知道请求的处理过程和最终哪个对象处理了它。在责任链模式中,请求通常沿着一个对象链传递,每个处理者对象都包含了自己的处理逻辑和对下一个处理者的引用。当收到请求时,处理者可以选择自行处理、部分处理或将请求传递给链中的下一个处理者。Handler(抽象处理者)

2024-02-06 17:33:55 1713

原创 设计模式(结构型模式)代理模式

多种方式实现代理模式

2024-02-06 09:53:13 988

原创 设计模式(结构型模式)享元模式

享元模式是一种结构型设计模式,旨在通过共享对象来最大程度地减少内存使用和提高性能。它主要用于减少创建对象的数量,节省内存和提高性能。该模式通过共享相似对象之间的公共部分来减少内存占用。当需要创建大量相似对象时,通过重用已存在的相似对象,而不是每次都新建一个对象来节省内存。这个被共享的对象称为享元(Flyweight),包含了对象的共享状态和非共享状态。共享状态是可以被多个对象共享的部分,而非共享状态是对象独有的部分。

2024-02-05 17:04:14 977

原创 设计模式(结构型模式)外观模式

外观模式(Facade Pattern)是一种结构型设计模式,提供了一个统一的接口,用于访问子系统中的一组接口。这个模式隐藏了子系统的复杂性,并为客户端提供了一个更简单的接口,使得客户端与子系统之间的通信更加简单和直接。外观模式的主要目的是降低系统的复杂性,为客户端提供一个更加简化的接口,使得客户端不需要了解系统的内部结构和实现细节,只需通过外观类进行操作即可。在外观模式中,通常有以下几个角色:Facade(外观): 外观类是客户端访问子系统的入口。

2024-02-05 17:03:23 1142

原创 设计模式(结构型模式)装饰器模式

装饰器模式是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。它通过创建包装对象来包裹原始类,在不改变其接口的情况下,为对象添加新的行为或责任。装饰器模式通常包含以下角色:Component(组件):定义了一个对象接口,可以动态地添加新的功能。ConcreteComponent(具体组件):实现了组件接口,是被装饰的类。Decorator(装饰器抽象类):实现了组件接口,并持有一个对组件对象的引用,在其内部包装组件对象,可以动态地为组件添加新的功能。

2024-02-05 16:56:08 533

原创 设计模式(结构型模式)组合模式

组合模式是一种结构型设计模式,它允许你将对象组合成树形结构以表示“整体-部分”的层次结构。组合模式使得客户端对单个对象和组合对象的处理具有一致性,可以像处理单个对象一样来处理组合对象。叶子(Leaf): 叶子是组合结构的最底层对象,它没有子元素。它实现了组合中的统一接口,但是不包含其他子对象。组合(Composite): 组合是包含子元素的对象。它也实现了统一的接口,但是除了执行基本操作外,它还能管理其子元素。这种模式使得客户端可以递归地处理单个对象和组合对象,而无需了解处理的是哪种类型的对象。

2024-02-05 14:16:46 802

原创 设计模式(结构型模式)桥接模式

桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式的核心思想是将一个大类或一系列紧密相关的类拆分成两个独立的层次结构:抽象部分(Abstraction)和实现部分(Implementation),使它们能够独立地进行变化。在桥接模式中,抽象部分定义了客户端使用的高层接口,而实现部分则是实现这些接口的具体实现类。抽象部分和实现部分各自通过接口进行通信,而不是通过继承的方式,这样就可以在运行时动态地将抽象部分和实现部分组合起来。

2024-02-05 14:15:46 1432

原创 设计模式(结构型模式)适配器模式

适配器模式是一种结构型设计模式,允许将一个类的接口转换成客户端所期望的另一个接口,使得原本由于接口不兼容而不能一起工作的类能够协同工作。适配器模式通常用于连接两个不兼容的接口,允许它们协同工作,而无需修改其原始代码。适配器模式包含以下主要角色:目标接口(Target): 客户端期待的接口。客户端通过这个接口与适配器进行交互。适配器(Adapter): 实现了目标接口,并持有一个对被适配者的引用。它将被适配者的接口转换为目标接口,使得被适配者能够被客户端使用。被适配者(Adaptee)

2024-02-05 14:14:02 1383

原创 设计模式(创建型模式)原型模式

原型模式的不同实现

2024-02-05 10:07:55 1455

原创 设计模式(创建型模式)建造者模式

建造者模式的使用

2024-02-05 09:51:41 737

原创 设计模式(创建型模式)工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式

2024-02-05 09:41:54 1333

原创 设计模式(创建型模式)单例模式

懒汉式,饿汉式,双重检查,静态内部类,枚举

2024-02-03 13:30:32 1060

原创 设计模式之七大设计原则

浅析面向对象七大设计原则

2024-02-02 15:19:19 1366

原创 Sharding-JDBC之ComplexKeysShardingAlgorithm(复合分片算法)

Sharding-JDBC之ComplexKeysShardingAlgorithm(复合分片算法)

2024-02-02 10:15:41 1467

原创 Sharding-JDBC之RangeShardingAlgorithm(范围分片算法)

Sharding-JDBC之RangeShardingAlgorithm(范围分片算法)

2023-06-25 15:50:12 3377 2

原创 Sharding-JDBC之PreciseShardingAlgorithm(精确分片算法)

Sharding-JDBC之PreciseShardingAlgorithm(精确分片算法)

2023-06-16 17:01:03 5175 1

空空如也

空空如也

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

TA关注的人

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