摘要:
什么是两阶段提交当有数据修改时,会先将修改redo log cache和binlog cache然后在刷入到磁盘形成redo log file,当redo log file全都刷入到磁盘时(prepare 状态)和提交成功后才能将binlog cache刷入磁盘,当binlog全部刷新到磁盘后会记录 阅读全文
摘要:
binlog有三种格式:Statement、Row以及Mixed。 –基于SQL语句的复制(statement-based replication,SBR), –基于行的复制(row-based replication,RBR), –混合模式复制(mixed-based replication,MB 阅读全文
摘要:
innodb_flush_log_at_trx_commit和sync_binlog 两个参数是控制MySQL磁盘写入策略以及数据安全性的关键参数。show variables like "innodb_flush_log_at_trx_commit"; innodb_flush_log_at_tr 阅读全文
摘要:
日志系统主要有redo log(重做日志)和binlog(归档日志)。redo log是InnoDB存储引擎层的日志,binlog是MySQL Server层记录的日志, 两者都是记录了某些操作的日志(不是所有)自然有些重复(但两者记录的格式不同)。 redo log日志模块redo log是Inn 阅读全文
摘要:
概念责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。 责任链模式优缺点优点:降低耦合度。它将请求的发送者和接收者解耦 简化了对象,使得对象不需要知 阅读全文
摘要:
在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码: 1 public class UnsafeLaz 阅读全文
摘要:
1、SET key value含义: 将字符串值 value 关联到 key 。 如果 key 已经持有其他值, SET 就覆写旧值,无视类型。 2、SETEX key seconds value含义: 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位) 阅读全文
摘要:
1:用途:我们知道,当一个对象实现了Serilizable接口,这个对象就可以被序列化,我们不关心其内在的原理,只需要了解这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。而在开发过程中,我们可能要求:当对象被序列化时(写入字节序列到目标文件)时,有些属性需要序列化,而其 阅读全文
摘要:
概述事务消息解决的问题是:Provider本地事务 + 消息投递 一起执行。解决应用端 和 MQ端两个独立的应用的操作,在一个事务里面完成因为传统的模式无法保证这一点,比如MQ宕机,或者网络丢失,而事务消息有一个两阶段确认的这一操作,可以大大降低这种丢失的概率。但是这个功能和消费者无关,并不能确保该 阅读全文
摘要:
ThreadLoacal为每个线程都提供了变量的副本,使得每个线程在某个时间访问到,这样对线程间的数据进行了隔离。如下图所以: ThreadLocal的使用ThreadLocal类接口很简单,只有4个方法。 1 1:public void set(T value) ; 2 2:public T ge 阅读全文