摘要:
一、分布式事务的概念 1,什么是事务 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。 2,本地事务 数据库事务的四大特性 ACID: A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Con 阅读全文
摘要:
一、准备环境 1,配置maven(MAVEN_HOME) 2,配置jdk(JAVA_HOME)我这里用的jdk1.8.0_121,之前碰到过一次别的版本的jdk在启动tomcat无法解析https情况,如果有这种情况建议更换jdk版本 3,配置git(我这里用的时git)或者svn根据自己需求 4, 阅读全文
摘要:
Volatile禁止指令重排 计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令重排,一般分为以下三种: 源代码 -> 编译器优化的重排 -> 指令并行的重排 -> 内存系统的重排 -> 最终执行指令 单线程环境里面确保最终执行结果和代码顺序的结果一致 处理器在进行重排序时,必须要考虑指令 阅读全文
摘要:
一、 ACID 1.1 原子性(Atomicity) 原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做,如果事务中一个sql语句执行失败,则已执行的语句也必须回滚,数据库退回到事务前的状态。 InnoDB是靠undo log实现回滚,当事务对数据库进行修改时,InnoDB会 阅读全文
摘要:
一、Volatile 1.1 可见性 read(读取):从主内存读取数据 load(载入):将主内存读取到的数据写入工作内存 use(使用) :从工作内存读取数据来计算 assign(赋值):将计算好的值重新赋值到工作内存中 store(存储):将工作内存数据写入主内存 write(写入):将sto 阅读全文
摘要:
一、数据结构 1,数据结构 Redis表现突出的原因: 1、在内存中进行操作 2、高效的数据结构(降低复杂度) Redis的存储接口主要有:String、List、Hash、Set和Sorted Set(Redis6.0之前)。底层结构一共有6种:简单动态字符串、双向链表、压缩列表、哈希表、跳表和整 阅读全文
摘要:
一、Linux内存工作原理 1,内存映射 Linux内核给每个进程都提供了一个独立的虚拟空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。 虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长(也就是单个CPU指令可以处理数据的最大长度)的处理器,地 阅读全文
摘要:
一、分析CPU瓶颈 1,性能指标 a>CPU使用率 CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任务的不同可以分为:用户CPU、系统CPU、等待I/O CPU、软中断和硬中断等 用户CPU使用率,包括用户态CPU使用率(user)和低优先级用户态CPU使用率(nice),表示 阅读全文
摘要:
一、软中断 1,中断的定义 a>定义 举例:你点了一份外卖,在无法获知外卖进度的情况下,配送员送外卖是不等人的,到了发现没人取会直接走,所以你只能苦苦等着,时不时去门口看送到没有,无法干别的事情。优化方式就是约定让配送员送到后打电话告知就行,这里打电话就是属于一种中断。 定义:中断其实是一种异步的事 阅读全文
摘要:
一、CPU使用率过高 1,CPU使用率 a>节拍率 为了维护CPU时间,Linux通过事先定义的节拍率(内核中表示为HZ),触发时间中断,并使用全局变量Jiffies记录开机以来的节拍数。每发生一次时间中断,Jiffies的值就加1 节拍率HZ是内核的可配置选项 #查看当前系统的节拍率为每秒钟250 阅读全文
摘要:
一、优化方向 1,性能指标 从应用负载的视角出发,考虑“吞吐”和“延时” 从系统资源的视角出发,考虑资源使用率、饱和度等 2,性能优化步骤 选择指标评估应用程序和系统的性能; 为应用程序和系统设置性能目标; 进行性能基准测试; 性能分析定位瓶颈; 优化系统和应用程序; 性能监控和告警。 3,Linu 阅读全文
摘要:
一、基本介绍 结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构。分为两种:1,类结构型模式:关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系;2,对象结构型模式:关心类与对象的组合,通过关联关系使得在一个 阅读全文
摘要:
一、原型模式 原型模式是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式。它提供了一种创建对象的最佳方式。 这种模式是实现一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如:当一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓 阅读全文