- 博客(16)
- 收藏
- 关注
原创 RocketMQ基础理论&存储结构设计
本文从rocket存储结构方面深入剖析,意在加深对rocketMQ的高性能设计原理的理解,学习其设计思想
2022-08-25 10:57:32 556 1
原创 Redisson分布式锁源码解析
Redisson实现分布式锁源码解析锁是在执行多线程时用于强行限制资源访问的同步机制,在分布式系统场景下,为了保证多个进程服务对共享资源的读写同步,保证数据的最终一致性,而单机服务的同步锁只能保证在单个服务中多线程的竞争数据安全性,所以需要分布式锁。分布式锁应该具备的条件:1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;2、高可用的获取锁与释放锁;3、高性能的获取锁与释放锁;4、具备可重入特性;5、具备锁失效机制,防止死锁;6、具备非阻塞锁特性,即没有获取到锁将直接返
2022-04-14 17:53:39 1870
原创 深入浅出InnoDB 引擎底层事务的实现机制
深入浅出InnoDB 引擎底层事务的实现机制事务特性事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性指的是一个事务中的操作要么全部成功,要么全部失败。一致性指的是数据库总是从一个一致性的状态转换到另外一个一致性的状态。隔离性指的是一个事务的修改在最终提交前,对其他事务是不可见的。持久性指的是一旦事务提交,所做的修改就会永久保存到数据库中。事务特性之间的关系事务的一致性通过原子性、隔离性、持久性来保证。也就是说 ACID四大特性之中,C(一致性)是目
2022-01-19 17:14:44 312
原创 深入理解InnoDB引擎底层存储和缓存原理
InnoDB引擎底层存储和缓存原理本文从数据结构说明讲解MYSQL的InnoDB引擎的底层存储结构和缓存设计,进而帮助更深刻的理解InnoDB的原理与特性。InnoDB记录存储结构和索引页结构InnoDB是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还 是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还需要把内存中的内容刷新到磁盘上。而读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录
2022-01-14 09:53:00 1295
原创 深入MYSQL内核查询优化规则
MySQL在执行的过程中会 有很多的优化措施,比如索引条件下推,回表中的MRR、索引合并、ROR等等。但是在执行之前, MySQL会依据一些规则,竭尽全力的把我们的SQL语句进行转换,以期可以达到成某种可以更高效执行的形式,这个过程也可以被称作查询重写或者查询优化,很多时候这些优化可以由我们自行完成以减少MySQL的优化时间。...
2022-01-10 17:43:40 320
原创 Spring Scheduled定义的方法调用时才开启此任务
来源在通过定义一个任务方法时,需要在任务方法被业务代码调用时,才触发后续的定时任务自动运行。实现思路1、首先看下源码spring提供的task是由一个注解@EnableScheduling来控制开关,所以源码从这里入手通过源码,可以看到schdule的任务是由ScheduledAnnotationBeanPostProcessor来处理的,查看该类的源码可以得知:postProcessAfterInitialization(Object bean, String beanName)方法即为实际
2022-01-04 15:23:03 703
原创 深入理解MYSQL事务与锁机制
深入理解MYSQL事务与锁机制事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元。事务具有以下4个属性,通常简称为事务的ACID属性。1、原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。2、 一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规 则都必须应用于事务的修改,以保持数据的完整性。3、隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影
2021-12-31 15:58:09 559
原创 深入理解MYSQL执行流程
深入理解MYSQL执行流程欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样
2021-12-31 15:56:37 315
原创 MYSQL索引+执行计划之成本计算
MYSQL执行计划之成本计算对于MySQL5.6之前的版本来说,只能通过EXPLAIN语句查看到最后优化器决定使用的执行 计划,却无法知道它为什么做这个决策。在MySQL 5.6以及之后的版本中,MySQL提出了一个optimizer trace的功能,这个功能可以让我们方便的查看优化器生成执行计划的整个过程。索引在计算成本之前,我们需要先了解MYSQL的索引结构以及索引命中规则。索引是什么?索引是帮助MySQL高效获取数据的排好序的数据结构数据结构B-treeB-Tree即B树,是一种多路
2021-12-29 17:11:46 2918
原创 Java 实现自定义概率性配置并随机抽取算法
Java 实现自定义概率性配置并随机抽取算法最近在做一个奖品抽取的活动,可以自定义配置每个奖品的中奖概率,奖品的抽奖数和概率都可以动态配置的。比如说配置电脑0%,手机10%,ipad 5%,谢谢惠顾60%,1元优惠券25%这种配置。
2020-12-12 16:51:28 3477 2
原创 ActiveMQ的简单使用
一、ActiveMQ核心概念1、ActiveMQ是消息队列技术,为解决高并发问题而生!2、ActiveMQ生产者消费者模型(生产者和消费者可以跨平台、跨系统) 有中间平台3、ActiveMQ支持两种消息传输方式 1)Queue,队列模式,生产者生产了一个消息,只能由一个消费者进行消费 2)Topic,发布/订阅模式,生产者生产了一个消息,可以由多个消费者进行消费...
2018-09-12 19:19:02 374
原创 关于webService中的cxf开发配置
一、CXF两种传输数据的方式: 1. JAX-WS,基于SOAP协议(Simple Object Access Protocol,简单对象访问协议),支持xml数据格式 2. JAX-RS,基于HTTP协议,支持xml数据格式或者json数据格式二、开发步骤:(主要用jax-rs与maven项目整合的开发) 1.ws独立发布 第一步:准备服务 a.建jar工程...
2018-09-12 18:35:51 409
原创 关于Java 的maven项目整合Struts2 + Spring + SpringDataJPA 的基本配置
关于Java 的maven项目整合Struts2 + Spring + SpringDataJPA 的配置问题: 1.在项目的pom.xml导入依赖坐标: (1) IOC导入,Spring-context依赖beans、core、expression,所以不需要再重复导入其依赖的坐标,会自动导入。 <dependency> <...
2018-09-06 11:27:46 330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人