自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沸羊羊_

如果不想成为一个碌碌无为的人,除了对浩渺星空的无穷向往,还必须具备对平庸生活的憎恶。...

  • 博客(119)
  • 资源 (1)
  • 收藏
  • 关注

原创 es查看某字段分词结果

GET /{index}/{type}/{id}/_termvectors?fields={fieldName}如图:

2022-03-12 21:07:38 1218 1

原创 分布式事务解决方案之RabbitMQ

前言之前介绍了分布式事务解决方案:2PC,3PC,TCC机制,今天主要介绍基于 RabbitMQ 的分布式事务解决方案,Let's go !分布式事务问题以电商业务为例,订单服务对应的订单数据库,库存服务对应的库存数据库,多个数据源之间存在了分布式事务问题。如何保证在订单生成后,正确的扣除库存,或者在订单生成失败时,还原扣除的库存,这就是分布式事务将要解决的问题。解决分布式事务前的业务逻辑:@Transaction(rollbackFor=Exception.class)public void

2021-09-17 09:23:12 2533 1

原创 详解分布式事务解决方案之TCC机制

前言之前讲解了分布式事务的解决方案之2PC和3PC,今天主要讲解事务补偿机制(TCC),Let's go !TCCTCC 事务补偿是基于 2PC 实现的业务层事务控制方案,它是 try, Confirm, Cancel 三个单词的首字母,含义如下:try 检查及预留业务资源完成提交事务前的检查,并预留好资源confirm 确定执行业务操作,对 try 阶段预留的资源正式执行cancel 取消执行业务操作,对 try 阶段预留的资源进行释放将 TCC 机制带进业务为例:1、try下单业

2021-09-17 09:18:05 2271

原创 Zookeeper 的 Zab 协议详解

ZabZab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播),通过 Zab 协议来保证分布式事务的最终一致性。Zab 是特别为 Zookeeper 设计的支持崩溃恢复的原子广播协议,在 Zookeeper 中主要依赖 Zab 协议实现数据一致性,基于该协议,Zookeeper 实现了一种主备模型(Leader 与 Follower)的系统架构保证集群中各个副本之间的数据一致性。Zab 协议核心在 Zookeeper 中只有一个

2021-09-17 09:12:24 4683

原创 Mybatis批量插入哪家强?

前言本文使用 Mybatis 进行批量插入,比较两种不同的插入方式的区别。测试批量插入注意事项:1、连接数据库时添加参数 allowMultiQueries=true,支持多语句执行,批处理2、数据库是否支持大量数据写入,设置 max_allowed_packet参数保证批次提交的数据量拼接 sqlpublic void batchDemo() { long start = System.currentTimeMillis(); List<User> list = n

2021-09-17 09:11:30 1156

原创 MySQL for update 到底是 row lock / table lock

前言MySQL 在使用 for update 进行查询操作时,锁的是 row 还是 table 呢?答案见文末。本文测试的环境为 MySQL 8.0.21验证MySQL for update 时使用索引 检索数据的情况下,使用的是 row lock,而不使用索引检索数据的话,是 table lock,下面我们先来通过实验验证这个说法。打开两个MySQL连接,将其中一个连接关闭自动提交事务。-- 查询事务提交方式select @@autocommit;-- 关闭自动提交事务set autoc

2021-09-17 09:09:47 2177 3

原创 分布式一致性协议 2PC 和 3PC

前言如果在分布式系统中发起一个事务,该事务涉及到多个不同节点,那么为了保证事务ACID特性,就需要引入一个协调者来统一调度事务涉及的多个节点,被调度的节点称为事务参与者,由此衍生出了 2PC 和 3PC 协议,本文主要主要介绍这两个协议。2PC2PC(Two-Phase Commit)两阶段提交,是不是想到了 MySQL 的2PC,MySQL 的2PC 是为了保证单个数据库事务的完整性,让每次执行写操作时 redo_log 和 binlog 两个文件的一致性。分布式事务的2PC协议也是一样,为了保证

2021-09-17 09:03:41 1555

原创 Dubbo的架构与调用流程详解

前言本文主要对 Dubbo 的简介,架构等宏观方面对 Dubbo 进行介绍。应用架构的演进单体应用早期的应用架构是大多是单体应用,随着互联网的快速发展以及数据量的急剧增长和业务的复杂度,很多企业会对应用进行垂直拆分,即把业务上没有关联的系统独立拆分出来,形成独立对外提供服务的系统。此时,服务之间完全独立,无法进行远程调用,很多基础代码不能复用,需要复制使用。为了解决这些存在的问题,衍生出了分布式应用。分布式应用SOA架构为了解决单体应用出现的问题,面向服务的架构(SOA)出现了,SOA 将单一

2021-09-17 08:56:48 1650

转载 详解构造函数、set方法、建造者模式三种对象创建方式

转载至原创作者:建造者模式:详解构造函数、set方法、建造者模式三种对象创建方式今天,我们来学习另外一个比较常用的创建型设计模式,Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。实际上,建造者模式的原理和代码实现非常简单,掌握起来并不难,难点在于应用场景。比如,你有没有考虑过这样几个问题:直接使用构造函数或者配合 set 方法就能创建对象,为什么还需要建造者模式来创建呢?建造者模式和工厂模式都可以创建对象,那它们两个的区别在哪里呢? 话不多说,带着上面两个问题,让我们开

2021-09-09 20:15:20 555 1

原创 面试官:说说Redis中Hash数据类型的底层结构

前言本文将介绍Redis中Hash数据结构的底层结构,字典。概述字典,又称为符号表、关联数组或映射,是一种用于保存键值对的抽象数据结构。在字典中,一个键(key )可以和一个值(value)进行关联(或者说将键映射为值),这些关联的键和值就称为键值对。字典经常作为一种数据结构内置在很多高级编程语言里面,但Redis所使用的C语言并没有内置这种数据结构,因此 Redis构建了自己的字典实现。字典在Redis中的应用相当广泛,比如 Redis的数据库就是使用字典来作为底层实现的,对数据库的增、删、查、

2021-08-25 21:24:38 883 1

原创 面试官:说说Redis的List类型的底层结构

前言Redis的 List 数据类型,作为一种数据类型,它的底层实现是链表,由于 Redis 使用的C语言没有内置这种数据结构,所以 Redis构建了自己的链表实现。List类型的结构就是链表,链表中的每个节点都保存了一个值。除了链表键之外,发布与订阅、慢查询、监视器等功能也用到了链表,Redis服务器本身还使用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区( output buffer ),本文将对Redis的链表进行介绍。链表每个链表使用一个 listNode 结构来表示:

2021-08-25 21:22:34 780

原创 面试官:说说Redis存储字符串的底层结构

前言本文将介绍 Redis 字符串类型底层数据结构。C语言传统的字符串表示,被称为C串,而 Redis没有使用这种结构作为默认字符串的存储结构,而是自己构建了一种简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。在 Redis 中,C字符串只会作为字符串字面量用在一些无需对字符串值进行修改的地方,比如打印日志。SDS当 Redis 需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,Redis就会使用 SDS 来标

2021-08-25 21:21:19 329

原创 Redis高可用——集群

前言Redis集群是Redis提供的分布式数据方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。本文将对节点、槽指派、命令执行、重新分片、转向、故障转移、消息等各个方面进行介绍。概念节点一个Redis集群通常由多个节点(node)组成,在刚开始的时候,每个节点都是相互独立的,它们都处于一个只包含自己的集群当中,要组建一个真正可工作的集群,我们必须将各个独立的节点连接起来,构成一个包含多个节点的集群。连接各个节点的工作可以使用CLUSTER MEET命令来完成,该命令

2021-08-24 20:28:32 1603 1

原创 Redis高可用——哨兵Sentinel

前言本文将对Redis的高可用方案———哨兵模式进行介绍,讲解其内部实现原理。概述Sentinel是 Redis的高可用性解决方案:由一个或多个 Sentinel 实例组成的 Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,然后由新的主服务器代替已下线的主服务器继续处理命令请求。如上图为一个 Sentinel系统实例:server1 为当前的主服务器server2、

2021-08-24 20:26:12 1728

原创 线程池的原理以及ThreadPooolExecute详解

文章目录前言线程池ThreadPoolExecute创建线程池提交任务关闭线程池线程池监控Executors 简介FixedThreadPoolSingleThreadExecutorCachedThreadPoolScheduledThreadPoolExecutorFutureTaskFutureTask使用小结前言本文将对线程池的使用,创建以及 Executors 框架的创建线程池的方式进行介绍。线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用

2021-08-24 12:00:19 3158

原创 Redis高可用——主从复制原理

前言Redis 的高可用方案包括:持久化、主从复制、哨兵和集群。其中持久化侧重解决的是 Redis 数据的单机备份问题;而主从复制则侧重解决数据的多机热备,此外,主从复制还可以实现负载均衡和故障恢复。本文主要介绍 Redis主从复制,包括如何使用主从复制、主从复制相关的配置、主从复制的原理等。主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Red

2021-08-21 16:32:20 1198

原创 Redis Client 之 Jedis与Lettuce

前言JedisJedis 是 Redis 官方推荐的 Java 连接开发工具,要在Java开发中使用好 Redis中间件,必须对Jedis十分了解才行。基本使用Jedis 的使用非常简单,只需要创建 Jedis 对象的时候指定 host,port,password 即可。Jedis jedis = new Jedis("ip",post);......jedis.close();创建完 Jedis 对象,Jedis底层会打开一条 Socket 通道和 Redis 进行连接,所以在使用完 J

2021-08-21 16:31:14 3342 2

原创 一文搞懂Redis持久化方式RDB&AOF

前言Redis的性能好的特性很大程度上是由于将所有数据都存储在了内存中,然而当 Redis 重启后,所有存储在内存中的数据就会丢失,在一些情况下,我们希望 Redis 在重启后能保证数据不丢失。我们可以让数据从内存中以某种形式同步到磁盘中,使得重启后可以根据硬盘中的记录恢复数据。这一过程就是持久化。Redis支持两种方式的持久化,一种是 RDB ,一种是 AOF,前者会根据指定的规则“定时”将内存中的数据存储在磁盘上,而后者在每次执行命令后将命令本身记录下来,两种持久化方式可以单独使用其中一种,但更多情

2021-08-21 16:27:34 2807 2

原创 从理论+实战的角度分析Http,Socket 与 WebSocket 三者的联系

HttpHttp (超文本传输协议)是应用层协议,是一个简单的请求-响应协议,基于 TCP 进行连接,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应头以 ASCII 形式给出;而消息内容则具有一个类似 MIME的格式。Http就是基于这样的模型进行请求响应的。Http 只能由客户端发起消息,由服务端接收,服务端无法主动向客户端发送消息。Http连接是短连接,即客户端向服务端发送一次请求,服务端响应后连接就会断掉。Tcp:传输层协议Ip:网络层协议Socket概念So

2021-08-16 12:07:21 1179

原创 Redis使用Lua脚本详解

前言本文将讲解 RedisLua脚本的基本操作以及与 Java项目的集成使用。Lua脚本Lua是一个高效的轻量级脚本语言,在葡萄牙语中是“月亮”的意思,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。为什么要在程序中嵌入 Lua脚本?它解决了什么问题?假设要开发一个 iPhone 的电子宠物游戏,设定玩家每次给宠物喂食,宠物饥饿值就会减 N 点,这个 N 如果设置为一个定值,以后需要更改的话,玩家就需要到 App Store 中升级游戏

2021-08-15 13:54:36 5959 37

原创 从源码角度搞懂 Ribbon 的负载策略

前言Ribbon 是 Netflix公司的一个开源项目,现已被收录到 SpringCloud ,是一个基于 HTTP 和 TCP 的客户端负载均衡器,当我们将 Ribbon 与 Eureka一起使用时,Ribbon会从Eureka注册中心去获取服务端列表,通过轮询方式达到负载均衡的作用,客户端负载均衡中用心跳机制去维护服务端清单的有效性,这个过程需要配合服务注册中心一起完成。什么是负载均衡?负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是

2021-08-14 10:33:28 1494

原创 从源码角度分析 Mybatis 的 SqlSession 以及 二级缓存的创建过程

文章目录前言本文将从源码角度对 SqlSession 对象的创建过程以及二级缓存的实现进行讲解。构建 SqlSessionMybatis 构建阶段的调用入口类是 SqlSessionFactoryBuilder,在得到初始化的 configuration对象后用其构建 SqlSessionFactory,而 SqlSessionFactory 是生产 SqlSession 对象的工厂,SqlSession 是 Mybatis 执行阶段的关键入口类。构建入口 SqlSessionFactoryB

2021-08-08 17:52:56 1554 1

原创 半自动ORM与全自动ORM框架有什么区别?

什么是 ORM?ORM对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。ORM是面向对象程序设计语言和关系型数据库发展不同步时的解决方案,采用 ORM框架后,应用程序不再直接访问底层数据库,而是以面向对象的方式来操作持久化对象,而ORM框架则将这些面向对象的操作转换成底层的 SQL

2021-08-07 20:26:39 4274 1

原创 一文搞懂Mybatis架构与工作原理

前言本文将从宏观角度分析 Mybatis 的架构与工作原理。架构Mybatis的功能架构分为三层:API接口层:提供给外部使用的接口API,开发人员通过这些 API 操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理数据处理层:负责具体的SQL查找,SQL解析,SQL执行和执行结果映射处理等。主要目的是根据调用的请求完成一次数据库操作基础支撑层:负责最基础的功能支撑,包括连接管理,事务管理,配置加载和缓存处理,这些都是共用的,将它们抽取出来作为最基础的组件,为上层的数据

2021-08-06 18:00:32 1668

原创 Mycat 配置看这一篇就懂了

文章目录前言server.xml 配置system 标签user 标签property 标签privileges 标签schema.xml 配置schema 标签table 标签dataNode 标签dataHost 标签heartbeat 标签writeHost & readHost 标签小结前言本文将对 Mycat 配置文件进行详细介绍,搞清楚配置文件的信息,才是正确使用 Mycat 的前提。【图片来源网络】应用连接Mycat服务时,Mycat首先会通过server.xml中的配置信息

2021-08-04 21:23:36 3355

原创 终于搞懂 BIO,NIO,AIO 了

前言I/O,通常指数据在内部存储器(内存)和外部存储器(磁盘)之间的输入和输出。在 Java 中提供了一些 API,可以供开发者来读写外部数据或文件,称这些 API 为 Java IO,随着 Java的发展,目前有三种IO:BIO,NIO,AIO,下面对这三种 IO 进行介绍。在讲述BIO,NIO,AIO前,先来弄清楚四个概念:同步异步,阻塞非阻塞。同步/异步同步/异步关注的是消息通信机制。同步(Synchronous) 是指发起一个调用后,调用方必须等待此调用返回结果后才能继续执行。异

2021-08-02 16:39:12 1559 3

原创 Explain你真的会用吗?

文章目录Explain的作用?idid相同id不同id相同又不同select_typeSIMPLEPRIMARYSUBQUERYDERIVEDUNIONUNION RESULTtabletypeExplain的作用?idid相同id不同id相同又不同select_typeSIMPLEPRIMARYSUBQUERYDERIVEDUNIONUNION RESULTtabletype...

2021-08-01 12:00:06 1698

原创 你一定要知道的SQL优化技巧

前言前面的文章介绍过了索引、锁、复制与恢复、日志等 MySQL 的底层原理,本文主要从实战的角度出发,讲解如何合理的设计查询,因为即使查询写的很糟糕,即使表结构再合理,索引再合适,也无法实现高性能。本文会介绍一些查询设计的基本原则,以及一些更深的查询优化的技巧。在优化查询前先要了解在完成一个查询的过程中,查询需要在哪些地方花费时间,包括网络、CPU计算、生成统计信息和执行计划、锁等待等操作,尤其是向存储引擎检索数据的调用操作,这些调用需要在内存操作,CPU操作和内存不足时导致的 I/O 操作上消耗时间。

2021-08-01 10:24:59 2937 1

原创 MySQL模糊查询再也不用like+%了

文章目录前言我们都知道 InnoDB 在模糊查询数据时使用 "%xx" 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用户数据的关键字进行全文查找,电子商务网站需要根据用户的查询条件,在可能需要在商品的详细介绍中进行查找,这些都不是B+树索引能很好完成的工作。通过数值比较,范围过滤等就可以完成绝大多数我们需要的查询了。但是,如果希望通过关键字的匹配来进行查询过滤,那么就需要基于相似度的查询,而不是原来的精确数值比较,全文索引就是为这种场景设计的。全文索引(Ful

2021-07-28 15:17:53 4585 19

原创 从理论到实战,彻底搞懂MySQL主从复制原理

文章目录前言常见主从架构模式单向主从双向主从级联主从多主一从主从原理前言MySQL 主从复制也称为 MySQL 主从同步,是构建数据库高可用集群架构的基础,我们通过为服务器配置一个或多个备库的方式来进行数据同步,复制功能不仅有利于构建高性能应用,同时也是高可用性、可扩展性、灾难恢复、备份以及数据仓库等工作的基础。复制的基本问题是解决不同服务器的数据保持同步,一台主库的数据可以同步到多台备库上,备库本身也可以被配置为另外一台服务器的主库,主库和备库之间可以有多种不同的组合方式。常见主从架构模式单向

2021-07-26 21:38:36 1825

原创 MySQL数据备份与恢复机制详解

文章目录前言备份冷备热备mysqldump工具前言安全管理数据库的关键是定期备份,根据数据量、MySQL服务器的数量和数据库工作负载等情况,选择最适合的备份方式。备份分为以下类型:冷备:停库,停服,备份温备:不停库,备份时锁表热备:不停库,备份时不锁表备份冷备如果可以关闭 MySQL 服务器,则可以进行物理备份。好处是可以保证数据库的完整性,备份过程简单且恢复速度相对较快。但前提是停掉MySQL服务器意味着系统需要停摆。冷备过程停掉 MySQL 服务复制 InnoDB 数据文

2021-07-24 16:59:04 2559

原创 详解MySQL锁

文章目录前言全局锁表级锁表锁MDL锁意向锁行级锁共享锁(S)排他锁(X)记录锁(Record Lock)间隙锁(GAP Lock)Next-Key Lock死锁如何降低死锁发生的概率前言MySQL中的锁大致分为三类:全局锁、表级锁、行锁。本文主要针对这三种锁展开叙述。关于MySQL的系列文章,请跳转至 MySQL专栏全局锁顾名思义,全局锁就是对整个数据库实例加锁。MySQL提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库

2021-07-20 15:58:55 1250 1

原创 简单易懂的MySQL覆盖索引、前缀索引、索引下推

文章目录前言聚集索引/非聚集索引前言聚集索引/非聚集索引

2021-07-19 16:36:32 1671 1

原创 你还不知道 BTree,B-Tree,B+Tree 的区别吗?

文章目录前言BTreeB+Tree小结前言今天来总结一下,B树、B-树、B+树,这三棵树。对于 B树和B-树,网上的说法分为两种,一种说法是B树是二叉搜索树,B-树是一种多路搜索树;另一种说法是 B树就是B-树,B-树就是B树。经过查阅资料,得出结论,后者说法是正确的。下面引用百度百科 B树 的定义:在B-树中查找给定关键字的方法是,首先把根结点取来,在根结点所包含的关键字K1,…,Kn查找给定的关键字(可用顺序查找或二分查找法),若找到等于给定值的关键字,则查找成功;否则,一定可以确定要查找的关

2021-07-18 20:14:39 2622 1

原创 彻底搞懂MySQL 的 redo log 、 binlog、undo log

文章目录前言redo logbinlogredo log 与 binlogupdate 操作流程两阶段提交undo log总结前言前面两篇文章介绍了 MySQL 的体系架构和 InnoDB 的存储结构和体系结构,今天这篇文章主要讲解 MySQL 中的一些重要 log 文件的作用。包括:redo log,binlog,undo log宏观角度理解Mysql体系架构传送门InnoDB体系架构详解传送门前面的文章讲解了 MySQL 的体系架构,所以,我们知道一条 select 语句是如何执行的。如果是

2021-07-18 11:19:47 1548 1

原创 InnoDB体系架构详解

文章目录前言InnoDB 存储结构表空间系统表空间独立表空间通用表空间undo表空间临时表空间段区页行InnoDB 体系架构内存结构前言上篇文章讲解了 MySQL 体系架构,今天讲解 MySQL 最主流的存储引擎 InnoDB 体系结构。宏观角度理解Mysql体系架构传送门InnoDB 存储结构InnoDB 逻辑存储单元主要分为:表空间、段、区、页。层级关系如下图:表空间MySQL5.7以后,表空间分为:系统表空间、独立表空间、通用表空间、undo表空间、临时表空间。系统表空间系统表空

2021-07-17 11:06:45 2188

原创 宏观角度理解Mysql体系架构

文章目录前言MySQL架构连接器查询缓存分析器优化器执行器存储引擎总结前言学习 MySQL 要先从全局角度进行宏观了解,再陷入细节里,这样能帮助我们更深入的理解细节部分。本文将讲解 MySQL 架构。MySQL架构大体来说,MySQL可以分为Server层和存储引擎层两部分。Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。而

2021-07-16 16:26:42 1214

原创 一文搞懂Rabbitmq常用模式

文章目录前言核心组成Rabbitmq模式Hello worldWork queuePublish/subscribe概述应用场景Routing前言上一篇文章介绍了消息中间件,本文主要讲解MQ的具体实现 RabbitMQ消息中间件详解-传送门核心组成Rabbitmq模式Hello worldWork queue一旦 rabbitmq 将消息传递给消费者,就会立即将其标记为删除状态。如果消费者接收任务,但并没有完成处理的情况下,就down了,此时,这种已分派给消费者的但并未完成处理的消息就

2021-07-13 21:45:46 1279 24

原创 消息中间件详解

前言rabbitmq模式directwork queue一旦 rabbitmq 将消息传递给消费者,就会立即将其标记为删除状态。如果消费者接收任务,但并没有完成处理的情况下,就down了,此时,这种已分派给消费者的但并未完成处理的消息就丢失了。但这时,我们不希望消息丢失,如果一个消费者未完成处理就down了,rabbitmq 会将这个消息分发给其他的消费者。为了确保消息不会丢失,rabbitmq 支持消息确认,消费者接收到消息后,向生产者发送 ack 确认消息 ,代表消息已被接收、处理,并且 r

2021-07-12 20:50:38 5868 15

原创 搞懂Spring事务机制,一篇文章就够了

文章目录前言1 事务1.1 概念1.2 特性1.3 隔离级别1.4 传播特性1.5 配置方式1.5.1 编程式事务1.5.2 声明式事务2 实战2.1 PROPAGATION_NEVER 机制2.2 PROPAGATION_NOT_SUPPORTED 机制2.3 PROPAGATION_SUPPORTS 机制2.4 PROPAGATION_REQUIRES_NEW 机制2.5 PROPAGATION_NESTED 机制2.6 PROPAGATION_REQUIRED 机制2.7 PROPAGATION_MA

2021-07-10 15:57:58 2246 42

数据库连接池jar包与配置文件.rar

数据库连接池jar包-c3p0和druid,包含各自的配置文件,需要的小伙伴自行下载即可!

2020-05-26

空空如也

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

TA关注的人

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