我说mysql之truncate
本文是新系列《我说mysql》的第一篇,从本文开始,我会陆续对mysql相关的重要知识点进行讲解和总结。
今天先讲一下mysql的一个关键字“truncate”,剖析一下它的特点及其与delete、drop的区别。
truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。
本文是新系列《我说mysql》的第一篇,从本文开始,我会陆续对mysql相关的重要知识点进行讲解和总结。
今天先讲一下mysql的一个关键字“truncate”,剖析一下它的特点及其与delete、drop的区别。
truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。
大概是从12月初期,就开始酝酿18年的总结了,但是一直没动笔,想着在今年的最后一天写,或许会有更多的仪式感。
此刻,18年12月31号21时01分,我敲下这几行文字,努力把思绪萦绕在18年的始末,想到的就是题目中的两个词语,“精诚,进取”。
其实一开始想到了踏实,18年确实是踏实的一年,一年的时间,总觉得过的很快,踏实,忙碌。
忙碌的工作生活中,我感觉到了自己的进步是目力可见的,忙碌中,却更加的感觉到内心的沉稳,于是我确定了18年年度总结的关键词。
上文中,我们讲解了可靠消息最终一致性的实现原理及如何基于一款开源的消息中间件,实现一个可靠消息服务的思路。
本文,我们讲解如何利用开源消息中间件RocketMQ的特性–事务消息,实现基于消息一致性的最终一致的分布式事务。
RocketMQ是阿里巴巴开源的一款高性能、高可靠的消息中间件,经历过双11等大流量高并发的大考,是国内开源界的翘楚,在业界有着广泛的应用。
在之前的文章中,我们已经学习总结了分布式事务的两种解决方案。
本文我们将学习到另一种常见的柔性事务解决方案–消息一致性事务方案。
之前的文章中,我们利用Redis实现了分布式限流组件,文章链接:自己写分布式限流组件-基于Redis的RateLimter ,不得不感叹Redis功能的强大,本文中我们继续利用Redis的特性,基于Redission组件,实现一款能注解支持的可靠分布式锁组件。
在之前的文章中,我们介绍了基于TCC模式的分布式事务解决方案
TCC适用于公司内部对一致性、实时性要求较高的业务场景,而本文我们讲解的“最大努力通知型事务”是为解决跨网络、跨服务之间的柔性事务的另一种解决方案。
本文是“自己写分布式组件系列”的第四篇,本篇我们讲讲如何实现一个分布式配置中心服务。
由于该项目实现起来较为复杂,因此分为上下两篇讲解,上篇为单机模式,下篇为分布式模式。
话不多说,我们进入正文。
转自: LearningNotes-Java中的动态代理.md
代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
代理可以实现过滤请求、插入横切逻辑等功能,应用场景丰富多彩。
代理的方式分为静态代理和动态代理两种。
转自: LearningNotes-Java中的静态代理、JDK动态代理、cglib动态代理.md
代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。
代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。
静态代理由业务实现类、业务代理类两部分组成。业务实现类负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理。在需要调用业务时,不是直接通过业务实现类来调用的,而是通过业务代理类的同名方法来调用被处理过的业务方法。