自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 安装稳定版本nginx-1.20.2

1、下载nginxhttp://nginx.org/2、安装必要插件[root@Tseng-HW ~]# yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel……Upgraded: cpp-8.4.1-1.el8.x86_64 gcc-8.4.1-1.el8.x86_64 krb5-libs-1.18.2-8.3.el8_4.x8...

2021-11-19 14:15:47 16000 1

原创 Docker安装mysql8.0

Docker 安装 redis、mysql、mongodb、portainer、activemq、RabbitMQ、kafka、elasticsearch8

2021-07-30 11:16:35 17696 14

原创 统计数据库表t_abc中,近7个月内每个月创建记录的数量。如果某个月没有记录,则显示记录数为0

表中创建记录的统计情况,即便某月无记录也明确标记为0条。综上所述,此查询提供了未来7个月内,每个月在。

2024-05-11 15:35:28 203

原创 java mysql 两个 update 语句 相差1毫秒 执行,如何避免死锁

适当调整数据库的事务隔离级别,虽然较高的隔离级别能提供更好的数据一致性,但也会增加死锁的风险。但是,依赖于数据库自动处理死锁可能会导致用户看到不一致的行为,因此最好还是在应用层进行控制和重试。:大多数数据库系统允许设置事务的锁等待超时时间,当超过这个时间仍未获得所需锁时,事务将被回滚。:在应用程序代码中捕获死锁相关的异常,然后优雅地回滚事务,并在适当的延迟后重试事务。:尽量减小事务的范围和持续时间,使事务更简短,这样可以减少持有锁的时间,从而降低死锁的可能性。或消息内容),如果是,则回滚事务并重试。

2024-05-09 11:22:38 185

原创 设计模式- 中介者模式(Mediator Pattern)结构|原理|优缺点|场景|示例

中介者模式(Mediator Pattern)是一种行为设计模式,它通过引入一个中介者对象来封装多个对象之间复杂的交互关系,使对象之间不必相互引用,从而减少对象间的耦合。中介者使各个对象不需要显式地相互引用,而是通过中介者进行间接通信,从而降低系统的复杂性和提高可维护性。

2024-04-29 11:32:05 674

原创 设计模式- 访问者模式(Visitor Pattern)结构|原理|优缺点|场景|示例

访问者模式(Visitor Pattern)是一种行为设计模式,它表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于需要对一个对象结构中的对象进行很多不同类型的运算,而且施加运算的对象又不希望知道这些运算的具体实现的情况。

2024-04-29 11:27:06 1021 1

原创 设计模式-状态模式(State Pattern)结构|原理|优缺点|场景|示例

状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。这种模式主要用于当一个对象的行为依赖于它的状态(即内部状态),并且它必须在运行时根据状态改变它的行为时。

2024-04-28 21:24:13 773

原创 设计模式-备忘录模式(Memento Pattern)结构|原理|优缺点|场景|示例

备忘录模式(Memento Pattern)是一种行为设计模式,它提供了一种在不破坏封装性的前提下,捕获并外部化对象的内部状态,并能在需要时恢复该对象状态的方法。这种模式主要用于实现撤销操作,回滚到之前的状态,或者记录一个对象的一系列状态,以便将来恢复。

2024-04-28 21:10:49 517

原创 设计模式-命令模式(Command Pattern)结构|原理|优缺点|场景|示例

命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,使得请求的发送者和接收者之间解耦。命令对象可以携带参数,支持撤销操作,并且可以被存储、记录、序列化、排队、日志等,从而为系统提供更大的灵活性。

2024-04-27 19:12:22 417

原创 设计模式-责任链模式(Chain of Responsibility Pattern)结构|原理|优缺点|场景|示例

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它将请求的发送者与接收者解耦,让多个接收者对象形成一条链,并沿着这条链传递请求,直到有一个接收者处理它为止。每个接收者都有权决定是否处理请求,或者将请求转发给链上的下一个接收者。

2024-04-27 19:04:31 812

原创 设计模式- 迭代器模式(Iterator Pattern)结构|原理|优缺点|场景|示例

迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法来顺序访问聚合对象(容器)中的元素,而又不暴露其实现细节。通过使用迭代器,用户可以从不同类型的聚合对象中以统一的方式遍历元素,而无需了解聚合物的内部结构或其存储方式。

2024-04-25 15:32:51 497 1

原创 设计模式-观察者模式(Observer Pattern)结构|原理|优缺点|场景|示例

观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,允许一个或多个观察者对象订阅主题对象,当主题对象状态发生改变时,会通知所有已订阅的观察者对象,使得它们能够自动更新自己。

2024-04-25 15:11:16 724 1

原创 设计模式- 模板方法模式(Template Method Pattern) 结构|原理|优缺点|场景|示例

模板方法模式(Template Method Pattern)是一种行为型设计模式,用于定义一个算法的骨架,而将一些步骤的具体实现延迟到子类中。这样,可以在不改变算法结构的情况下,让子类重新定义算法中的某些步骤。

2024-04-24 14:55:16 619

原创 设计模式- 策略模式(Strategy Pattern)结构|原理|优缺点|场景|示例

设计模式中的策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装在一个单独的类中,使得它们可以互相替换。策略模式使得算法可以在运行时根据需要动态地改变,同时客户端代码可以通过统一的接口调用不同的策略实现。

2024-04-24 11:38:16 613

原创 设计模式- 享元模式(Flyweight Pattern)结构|原理|优缺点|场景|示例

享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享已存在的类似对象来有效支持大量细粒度对象的复用,从而降低系统内存占用并提高性能。它适用于对象的大部分状态都可以被外部化,而只有少量内在状态(共享部分)需要存储在享元对象中。这种模式通过共享内部状态相同的对象,避免了大量相似对象的创建。

2024-04-23 09:30:39 841

原创 设计模式- 组合模式(Composite)结构|原理|优缺点|场景|示例

组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。这种模式使得客户端可以以一致的方式处理单个对象(叶子节点)和组合对象(容器节点),无需关心处理的是个体还是群体。组合模式使得你可以将对象看作是树形结构中的节点,节点可以是简单的对象,也可以是包含其他节点的复合对象,这样就能形成一个层次化的结构。

2024-04-23 09:18:40 1218

原创 设计模式- 桥接模式(Bridge Pattern)结构|原理|优缺点|场景|示例

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们可以独立地变化。桥接模式通过引入桥接接口,使得抽象类和实现类可以分别独立扩展,从而解决了多维度变化的问题。这种模式特别适用于那些接口部分和实现部分都需要独立扩展的场景。

2024-04-22 17:28:06 1540

原创 设计模式- 外观模式(Facade Pattern)结构|原理|优缺点|场景|示例

外观模式(Facade Pattern)是一种结构型设计模式,其目的是为子系统提供一个统一的、更高级别的接口,使得客户端能够更容易地与子系统进行交互,而不必了解子系统的内部细节。外观模式通过创建一个外观类(Facade),封装了子系统中的复杂接口或多个子系统接口,提供一个更简洁、更易于使用的接口给客户端,从而降低了客户端与子系统之间的耦合度。

2024-04-22 17:16:17 583

原创 设计模式- 代理模式(Proxy Pattern)结构|原理|优缺点|场景|示例

代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象(被代理对象)提供一个代理对象,并由代理对象控制对被代理对象的访问。代理模式通过引入代理对象来间接访问目标对象,从而实现对目标对象的增强、控制访问权限、远程访问等功能。代理模式的关键在于代理类与目标类具有相同的接口,客户端可以透明地使用代理对象代替目标对象。

2024-04-21 16:56:53 1104

原创 设计模式- 装饰器模式(Decorator Pattern)结构|原理|优缺点|场景|示例

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在运行时动态地给对象添加新的职责(功能)或改变其原有行为。装饰器模式通过创建一个装饰器类,该类包装(持有)原始对象,并在保持原始对象接口不变的前提下,通过代理或继承的方式添加新的功能。装饰器模式可以提供比继承更灵活的扩展方式,因为它可以在不修改原有类的情况下,为对象添加新功能,并且可以叠加多个装饰器以实现多重增强

2024-04-21 16:31:08 786

原创 设计模式- 适配器模式(Adapter Pattern)结构|原理|优缺点|场景|示例

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换为客户期望的另一个接口,从而使原本不兼容的类能够协同工作。适配器模式的主要目的是解决接口不匹配的问题,它通过创建一个适配器类,将源接口转换为目标接口,使得原本无法直接交互的类能够通过适配器进行通信

2024-04-20 16:01:19 1004

原创 设计模式- 原型模式(Prototype Pattern)结构|原理|优缺点|场景|示例

原型模式(Prototype Pattern)是一种创建型设计模式,其主要目的是通过复制现有的对象(即原型)来创建新对象,而不是每次都通过new操作符来创建对象。这种模式适用于创建新对象的成本较大(如初始化耗时、占用资源较多)或者创建过程较复杂的场景,通过克隆原型对象可以快速、便捷地生成相似或相同状态的新对象。

2024-04-20 12:07:37 953

原创 设计模式- 建造者模式(Builder Pattern)结构|原理|优缺点|场景|示例

建造者模式(Builder Pattern)是一种创建型设计模式,其主要目的是将复杂对象的构建过程与它的表示分离,使得相同的构建过程可以创建不同的表示。这种模式适用于创建包含多个可选部件、步骤复杂且可能需要逐步构建的复杂对象,它能将构建过程分解为多个独立的、可复用的步骤,使得对象的创建过程更加清晰、灵活且易于扩展。

2024-04-19 09:28:54 1097

原创 设计模式- 单例模式(Singleton)结构|实现方式|优缺点|场景

单例模式(Singleton Pattern)是一种创建型设计模式,其目标是在整个应用程序中确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。这种模式常用于那些需要严格控制全局唯一且共享访问点的场景,如数据库连接池、缓存管理器、日志记录器等

2024-04-19 09:15:33 1263

原创 设计模式-抽象工厂模式(Abstract Factory Pattern)结构|原理|优缺点|场景|示例

抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式的核心目的是将一组相关产品的创建过程封装起来,使得客户端可以使用一个统一的接口来创建这些产品家族中的任何产品,而无需关心具体的实现细节。抽象工厂模式特别适用于处理具有产品族的产品结构,其中产品族是指位于不同等级结构中的一组产品,它们之间可能存在一定的依赖或约束关系

2024-04-18 11:10:49 724

原创 设计模式(工厂方法-Factory Method)结构|原理|优缺点|场景|示例

设计模式中的工厂方法(Factory Method)是一种创建型模式,它提供了一种创建对象的灵活方式,通过将对象的创建过程封装在子类中来实现对象的创建延迟。工厂方法模式的核心在于定义一个用于创建对象的接口(或抽象类),并允许子类决定实例化哪个类的对象

2024-04-18 09:51:54 1113

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

对象之间应保持松散耦合,每个对象对其它对象的了解仅限于那些与本职工作密切相关的对象。: 任何基类(父类)的实例应该能够在不改变程序正确性的情况下被其子类的实例替换。: 高层次模块不应该依赖于低层次模块,两者都应该依赖于抽象(接口或抽象类)。另外,抽象不应该依赖于细节,细节应该依赖于抽象。设计模式的六大原则是指导面向对象软件设计的基本准则,这些原则有助于设计出易于理解、灵活、可复用和可扩展的系统。换句话说,一个类应该只有一个职责,只有一个核心功能。一个类对另一个类的依赖应该建立在最小的接口之上。

2024-04-17 15:37:51 963

原创 设计模式(分类)

设计模式按照其主要关注点和解决的问题领域,通常被划分为以下三大类别:创建型5种、结构型模式7种、行为型模式11种

2024-04-17 15:11:53 922

原创 MongoDB 根据 _id 获取记录的创建时间并回填记录中

MongoDB 集合 test1,有字段 _id,createTime,createTimeStr,name字段 , 查询createTime不为空的,根据 _id 生成该条记录的创建时间时间戳并填写到字段 createTime 字段中 ,并打印时间戳。

2023-12-26 11:55:30 899

原创 java 经纬度验证-正则表达式

经度在 -180 到 180 度之间,纬度在 -90 到 90 度之间。正则表达式分别适用于验证纬度和经度的格式

2023-12-25 17:57:34 1023

原创 java.util.Date 和 java.sql.Date 区别

如果你需要与数据库进行交互,尤其是在处理 SQL DATE 类型时,建议使用。是 Java 中用于表示日期和时间的两个不同的类,它们之间有一些区别。总的来说,如果你需要处理日期和时间,而不涉及数据库交互,通常使用。字段的定义以及数据库中的数据样本,以便更详细地检查可能的原因。需要注意的是,随着 Java 8 的引入,推荐使用。,以提供更丰富、更灵活的日期和时间处理功能。如果你仍然遇到问题,可以提供实体类中。包中的新日期时间 API,例如。字段映射到 Java 实体时,

2023-12-22 16:31:21 426

原创 服务器 8 vCPU 32 GiB,有 10个docker容器 其中一个容器定时任务发现线程执行有丢失的现象

* Docker 容器的网络问题**: 如果定时任务涉及到网络通信,网络问题(如网络延迟、丢包或连接中断)可能会影响线程的执行。: 如果定时任务涉及到大量磁盘I/O操作,而服务器的磁盘I/O性能较低或存在其他I/O瓶颈,可能会导致线程执行延迟或丢失。: 如果容器由于某种原因(如OOM Killer、资源限制、错误配置等)意外重启或退出,正在执行的线程将会丢失。: 如果你的代码中存在线程同步问题,如竞态条件、死锁等,可能导致某些线程无法正确执行或被其他线程阻塞。

2023-12-22 16:22:11 533

原创 Mongodb 添加索引 优化记录

mongodb 50万以上数据统计查询 耗时3分钟触发cpu报警(cpu>=95%)优化 到3秒,并且未触发cpu报警

2023-12-08 15:58:27 404

原创 java 并行流parallelStream 与 CompletableFuture的选择

简单的并行处理和集合操作:选择并行流 (复杂的异步任务、依赖关系、等待多个任务完成:选择在实际应用中,通常你会根据具体的需求和场景选择合适的工具。有时候也可以结合使用这两者以发挥各自的优势。

2023-12-01 10:04:06 227

转载 多线程事务使用 SqlSession 手动提交

【代码】多线程事务使用 SqlSession 手动提交。

2023-11-15 09:04:01 163

原创 postmain 存储接口返回值

1、postmain 存储接口返回值。

2023-09-26 17:27:41 255

原创 Docker 精简安装 Nacos 2.2.1 单机版本

1)配置文件中:/data/nacos/conf 下的 application.properties 文件。6、配置断开,访问:IP地址:8848/nacos ,用户名/密码:nacos/nacos。3、启动nacos,复制配置文件到挂载目录,备份配置文件、删除启动的nacos。2)数据库准备,演示使用MySql5.7版本。1)已安装docker。2)GitHub地址。4、创建数据库、执行数据库脚本。

2023-09-26 10:23:47 805

原创 SpringBoot、SpringCloud 版本查看

3、SpringBoot 与 SpringCloud 版本对应。2023年8月3日内容。2、SpringCloud 官网地址。1、SpringBoot 官网地址。

2023-08-03 15:31:22 2217

原创 java list stream 使用

1、实现List对象集合的简单去重(distinct()) ​。3、实现List对象集合的简单过滤(过滤为 null 的对象)4、实现List对象集合中获取其中某一属性的List集合。6、实现List对象集合中求和、最大、最小、平均的统计。5、 现List对象集合中根据对象的某一属性进行分组。​2、实现List集合的根据属性(name)去重。7、实现List对象集合的分页。

2023-07-21 10:07:50 2477

原创 RocketMQ 5.1.0 在java中的使用

当前测试版本:springBoot 2.3.9、 RocketMQ 5.1.0。# RocketMQ Producer配置。# RocketMQ Consumer配置。

2023-07-17 11:37:13 925

空空如也

空空如也

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

TA关注的人

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