自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 分布式事务

分布式事务分布式与事务横跨不同服务器,由多个本地事务组成如无必要,不要引入分布式事务分布式事务的典型场景跨JVM进程:微服务,通过业务补偿解决自动的补偿机制就是分布式事务。。。跨数据库实例:一个应用调用了多个库,不应该出现这样的情况,应该通过服务调用数据库做了拆分,处于不同的数据库实例中尽量避免这样的拆分,通过绑定表这样的形式,比如订单库,都通过订单ID分片但是客户级的处理就无法避免了解决方案数据库维度和服务维度两阶段提交XA 协议

2022-05-16 13:58:09 206

原创 mysql 查询语句的执行过程

原资料极客时间-MySQL实战45讲-林晓斌执行过程连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接。TCP,长连接与短连接都有查询缓存:同样的sql语句直接返回结果评价:没啥用,mysql 8.0已舍弃默认不开启没啥用是因为使用场景限制sql一样,大小写都要相同,这一点还好对表的更新会失效掉这张的表的所有缓存分析器词法分析:语法树语法分析:检查是否满足 MySQL 语法优化器生成执行计划?执行器调用存储引擎的接口,完成查询

2021-10-28 17:35:20 221

原创 mysql update语句的执行过程

select语句执行join表的查询:https://manzb.top/2020/02/29/mysql-join/驱动表,被驱动表普通的就循环查:驱动表的过滤条件得出结果集n条,然后查询被驱动表n次join buffer: 结果集n条放到join buffer中m次(升序排列),有索引 放满和被驱动表匹配m次,放到read_rnd_buffer主键升序排列,顺序回表查询无索引 批量全表扫描update语句执行以下面的一条sql为例 (ID为主键)update T set

2021-10-14 15:03:25 248

原创 mysql 面试突击 集群与分布式

mysql复制原理master binlog,slaveIO thread,主动读,保存relay-log中sql thread,回放日志,解析执行sqlmysql复制类型异步复制半同步复制半同步无损半同步复制问题mysql只有主从,没有高可用innodb cluster高可用套件,监控,自动选主MMMMHA扩展性读写分离分库分表分库:按表的业务关系拆分数据库分表:字段拆分行拆分主键生成策略UUID:单机无序

2021-10-05 00:46:33 243

原创 mysql mysql和innodb原理与机制

mysqlinnodb结构内存及文件Buffer Pool:缓冲池在InnoDB访问表记录和索引时会在Page页中缓存,以后使用可以减少磁盘IO操作,提升效率以Page页为单位,Page页默认大小16K,链表结构page根据状态分为3类free page : 空闲page,未被使用free list :表示空闲缓冲区,管理free pageclean page:被使用page,数据没有被修改过lru list:表示正在使用的缓冲区,管理clean page和dirty

2021-10-04 20:52:39 247

原创 mysql 问题笔记

唯一索引比普通索引快吗, 为什么查询快一点,唯一索引匹配就返回,普通索引需要查到第一个不等的值更新慢,唯一索引因为唯一性约束,不走change buffer,非唯一索引走change buffer分页查询子查询joinMyISAM 和InnoDB 的区别事务其他的小点外键锁粒度有索引没法使用?隐式转换,字符与数字以“%” 开头的 LIKE 语句, 模糊匹配OR 语句前后没有同时使用索引MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预.

2021-10-04 20:21:30 76

原创 mysql 索引

索引为什么要用索引索引是查询优化最有效的手段可以使用到索引语法查询条件等值:=范围:> < betewm in模糊查询:like,索引最左匹配原则and orjoin:利用索引关联order by:利用索引有序索引数据结构B+树对比二叉搜索树:二叉,不一定平衡B树:多路搜索树,自动层次控制,数据分布在整棵树中B+树:继承B树特点,不同的是, 数据分布在叶子节点的链表中,链表有序,适合文件系统hash索引与存储引擎:每种存储

2021-10-04 19:46:27 59

原创 mysql 事务、binlog、redo log、undo log、mvcc与锁

索引事务ACID怎么实现原子性undo Log一致性是其他三个特性保证的隔离性MVCC持久性redo Log隔离级别mysql通过mvcc+next-key-lock解决了RR模式下的幻读MVCCMVCC:多版本并发控制目的读写无锁并发:读不用阻塞写,写不用阻塞读解决脏读,不可重复读,幻读(需要配和锁),但不能解决更新丢失的问题两种模式当前读:读最新的记录写操作:insert,delete,update读时显式加锁:s

2021-10-04 18:20:35 183

原创 JVM面试突击

参考https://www.freesion.com/article/42891183904/内存结构https://blog.csdn.net/aajjw/article/details/115672226垃圾收集器GCGC日志打印:https://blog.csdn.net/x763795151/article/details/89981686使用jvm命令,可以打印GC的信息(GC类型,GC开始时间,CG耗时,GC前后的内存空间统计情况),并可以指定文件通常的空

2021-10-04 17:07:48 182

原创 JDK 8 ArrayList并发问题

jdk8 ArrayList在并发添加元素的情况下,会丢元素和出现null的情况public class Test { private static List list = new ArrayList<>(); @SneakyThrows public static void main(String[] args) { testArrayList(); } private static void testArrayLis.

2021-10-01 22:34:33 198

原创 JDK8 HashMap也会死循环

前言我们知道JDK 7 HashMap是数组+链表数据结构,并发插入条件下,因为链表采用头插法,可能造成循环链表的问题,导致cpu占用100%JDK8 HashMap是数组+链表+红黑树的数据结构,应为链表改用尾插法,所有并发插入时没有了循环链表问题。但是红黑树一样会有死循环问题注意:HashMap并发条件下不止有死循环问题,还可能丢数据等等问题复现public class Test { private static Map<String, String> map = n

2021-10-01 22:28:44 745

原创 java spring boot dubbo SPI

参考https://blog.51cto.com/maxiaobian/3005329https://blog.csdn.net/qq_35190492/article/details/108256452SPI是什么Service Provider Interface服务提供者接口一种服务发现机制通过加载配置文件中指定类一般用于框架扩展使用。在不侵入框架的情况下,通过约定(加载配置文件中指定类),扩展框架功能javaMETA-INF/services/类名META-INF/s

2021-09-29 07:53:39 165

原创 zookeeper笔记

ZooKeeper是什么是一个开源的分布式协调器是一个典型的分布式数据一致性解决方案设计目的是将复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的系统,并以一系列简单易用的原子操作提供给用户使用CAP(一致可用分区容错)中取CPzookeeper=文件系统(Znode)+监听通知机制(watcher)高可用,高一致性的主从架构高可用,超半数节点正常即可提供读写服务强一致性主写从读主写(只有一个Leader,只有Leader才处理事务请求),写是有序的

2021-09-27 07:53:25 247

原创 缓存及缓存问题

2021-09-27 07:45:34 87

原创 redis数据类型及编码

2021-09-27 07:44:33 143

原创 redis命令

2021-09-27 07:43:37 73

原创 redis高可用集群部署

2021-09-27 07:42:58 96

原创 Redis笔记

2021-09-27 07:42:04 76

原创 快速失败(fail-fast)和安全失败(fail-safe)

https://www.cnblogs.com/shamo89/p/6685216.htmlfail-fast:java.util包下的集合类都是fail-fast以ArrayList为例集合中有一个modCount属性,当我们增加或删除元素时,modCount字段就+1调用集合的iterator()方法,创建一个Iterator返回Iterator中有一个expectedModCount,初始化Iterator对象时,expectedModCount=modCountIterato.

2021-09-27 07:22:21 85

原创 java面试知识点

java语法基础数据类型8种基本类型及包装类运算,赋值流程控制顺序选择循环面向对象3大特征:封装,继承,多态类类和对象类的组成构造器初始化块属性方法类的初始化过程类加载父类的静态初始化块子类的静态初始化块实例化父类的普通初始化块父类的构造器子类的普通初始化块子类的构造器种类抽象类匿名内部类枚举类接口异常处理基本类库Object和ObjectsMathBigDecimalSt

2021-09-25 17:02:56 84

原创 分布式理论

分布式系统集中式一台或多台计算机组成中心节点,数据集中存储在这个中心节点中,整个系统的所有业务集中部署在这个中心节点中,系统所有动能均由其集中处理。什么是分布式系统在分布式系统概念和设计一书中定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此间仅通过消息传递进行通信和协调的系统特性分布性:每一台计算机分布在不同的地方对等性:分布式系统中的计算机没有主/从之分,组成分布式系统的所有节点都是对等的。并发性:同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如

2021-09-25 17:01:12 214

原创 传说中的零拷贝

https://blog.csdn.net/weixin_42096901/article/details/103017044https://www.jianshu.com/p/193cae9cbf07硬件中断DMAlinuxread,write:图一,4次copy,2次系统调用即4次上下文切换mmap:图二,3次copy,2次系统调用4次上下文切换sendFile:图三,3次copy,1次系统调用2次上下文切换。图四,配合硬件的DMA支持,实现2次copy。https

2021-09-25 16:58:31 104

原创 mysql基础原理

mysql架构网络连接层客户端连接器服务层(MySQL Server)服务层是MySQL Server的核心SQL接口(SQL Interface):用于接受客户端发送的各种SQL命令,并且返回用户需要查询的结果。比如DML、DDL、存储过程、视图、触发器等解析器(Parser):负责将请求的SQL解析生成一个"解析树"。然后根据一些MySQL规则进一步检查解析树是否合法。查询优化器(Optimizer):当“解析树”通过解析器语法检查后,将交由优化器将其转化成执行计划,然后与

2021-09-20 16:44:03 402

原创 Spring Cloud Alibaba 之 Sentinel

官网https://sentinelguard.io/zh-cn/Sentinel是什么熔断器,对标Hystrix以流量为切入点,使用限流,降级,熔断等手段保护服务稳定性特点生态兼容支持多种服务类型,如spring cloud,dubbo,gRPC,Service Mesh支持多种配置中心,如zk,Nacos,Apollo完善的SPI扩展机制功能丰富,无需部署多种中间件,如Hystrix丰富的处理手段动态的配置实时监控前端界面概念和机制资源它可以是

2021-09-05 23:46:50 278 2

原创 Spring Cloud Alibaba 之 Nacos

Nacos官网https://nacos.io/zh-cn/docs/what-is-nacos.htmlnacos是什么注册中⼼+配置中⼼的组合(Nacos=Eureka+Config+Bus)发现、配置和管理微服务功能服务发现:支持Spring Cloud RESTful ServicegRPC & Dubbo RPC ServiceKubernetes Service服务健康检查服务及其元数据管理(管理平台, nacos也有⼀个ui⻚⾯可以查询注册的服

2021-09-05 15:37:02 235

原创 架构演化之SOA和微服务

架构演化架构是适应业务场景而生,有什么业务就有什么解决方案,即架构。单体架构,如MVCSOA架构面向服务,按服务拆分all in的大应用技术实现ESB:企业服务总线 - 支持异构环境中的服务、 消息, 以及基于事件的交互, 并且具有适当的服务级别和可管理性XML:消息交换格式SOAP:通常使用HTTP交换XML格式的消息WSDL:使用xml描述服务的接口,协议和格式UDDI:基于xml的注册协议,用于发布wsdlWeb Service:使用以上四种技术,跨平台跨语言的应用接口技术/

2021-08-26 22:55:49 120

原创 Spring Cloud简介

是什么使用spring boot封装了一套各家比较成熟的微服务框架, 屏蔽掉了复杂的配置和实现原理, 给开发者留出了⼀套简单易懂、易部署和易维护的分布式系统开发工具包。spring cloud是一套规范使用spring boot简化开发定义了 服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等功能解决了什么问题定义了规范,解决了微服务的落地问题(服务注册发现问题,网络问题(熔断)等),提供了一站式的解决方案优点缺点组件Spring Cloud官方Netflix

2021-08-26 22:32:32 107

原创 Spring Cloud Netflix

服务注册中心解耦服务提供者和服务消费者为了支持弹性的缩扩容,静态的LB机制不再适用原理服务提供者在服务注册中心注册服务服务注册中心维护服务列表,监控服务提供者的状态,失效及时剔除,并推送服务到服务消费者服务消费者到服务注册中心拉取服务列表,并选择一个服务提供者调用框架对比厂商语言CAP对外暴露的接口特性EurekaApache HadoopjavaAPHTTP存储+监听通知ConsulNetflixgoCPHTTP/DMSRes

2021-08-26 22:28:44 86

原创 Dubbo3的新特性

面向服务的架构要点通信通信协议:基于tcp或者http通信序列化:二进制,json等同步or异步rpc或者rest服务注册发现从ip地址直连到服务注册中心解耦服务管控负载均衡限流,降级,熔断服务监控上下线,优雅停机发布:A/B发布,灰度发布分布式链路跟踪其他日志分析api与测试开发注意参数验证异常处理dubbo2特性dubbo2是rpc+服务管控支持多种序列化协议:dubbo,rest,http,hessian,grpc等

2021-08-24 22:49:35 458

原创 Raft算法拆解

Raft的前世今生因为Paxos优秀而并不完美,Raft继承Paxos优点,改进缺点。Paxos优点:实现了安全性(safety)与存活性(liveness), 且在正常的情况下, 效率不差。Paxos缺点:难以理解和缺失了工程化的细节信息Raft目标安全性: 算法正确性能得到证明, 确保多状态机一致性的达成存活性: 半数以上结点正常工作且相互能够通信的情况下, 整个系统能持续对外提供服务易懂性: 聪明的你和我都能快速理解 Raft 协议的核心原理与正确性易实现: 充分描述算法的实现细

2021-08-17 07:51:22 1255

原创 Multi Paxos

Multi Paxos是什么Basic Paxos 只能对一个值形成决议,决议的形成至少需要两次网络来回,在高并发情况下可能需要更多的网络来回,极端情况下甚至可能形成活锁实际应用中我们常常需要连续确定多个值,而且希望能有更高的效率。补充分布式一致性协议,来源于我们对系统可用性,容错性的追求。 为了避免单机失效导致整个系统不可用的问题, 我们会很自然地希望复制数据多结点部署。 但数据一旦出现了多份, 就需要解决一致性的问题。为了解决多份数据的一致性问题, 我们常常将其简化为多份状态机的一致性问

2021-08-14 00:04:49 391

原创 paxos算法两阶段的必要性

paxos算法是什么在容忍消息乱序、重复、少数派宕机的前提下,多个节点就一个值达成一致,不管这个值是什么。这里的“一致”隐含意思的最终一致性,即如果所有节点存活且可达,在经过一定的时间后,最终所有节点的值会一致。这种算法统称为consensus algorithm(翻译为共识算法或者一致性算法)。世界上只有一种一致性算法,那就是paxos,其他的都是残次品。paxos算法简述组成proposal:提案,提案包括proposal number:提案编号和value:提案内容。proposer:用来

2021-08-11 02:29:53 400

原创 JVM笔记6 锁的实现

线程安全线程安全是什么当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下 的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对 象的行为都可以获得正确的结果,那就称这个对象是线程安全的。摘自《Java并发编程实战(Java Concurrency In Practice)》线程安全的级别不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。不可变final关键字修饰基本类型,就可以保证它的不可变性。而final修饰的类,表示的是类不可被继承

2021-07-27 21:04:32 125

原创 IO笔记之5个字

同步和异步,阻塞和非阻塞同步是线程在发起调用后没有结果就不返回5中IO模型阻塞 I/O(blocking IO)在linux中,默认情况下所有的socket都是blocking。一个典型的读操作流程大概是这样:当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据(对于网络IO来说,很多时候数据在一开始还没有到达。比如,还没有收到一个完整的UDP包。这个时候kernel就要等待足够的数据到来)。这个过程需要等待,也就是说数据被拷贝到操作系统内核的缓冲区

2021-07-27 21:03:39 41

原创 IO/网络 笔记

网络模型-4层和7层每层都有啥TCPHTTPsocket网络中不同主机上的应用进程之间进行双向通信的端点的抽象。重点是应用通信,ip+端口,是个API/接口。是对TCP/IP协议的进一步封装。linux5中IO模型重点在于两个阶段:准备数据,对于网络IO来说,很多时候数据在一开始还没有到达。比如,还没有收到一个完整的UDP包。这个时候kernel就要等待足够的数据到来kernel中拷贝到用户内存阻塞和非阻塞说的是等待数据阶段,用户线程是否阻塞同步和异步说的是在kernel中

2021-07-27 21:02:48 186

原创 Java集合

总图参考:https://www.runoob.com/java/java-collections.htmlCollctionList 有序,可重复ArrayList 数组LinkList 链表Vector 数组,同步的,性能不好Stack 栈,同步的,性能不好Set 不可重复集合HashSet 散列LinkHashSet 有序散列TreeSet 有序二叉树QueueIteratorIterator是一个接口,只有3个方法,如下:一边循环一边遍历比较实用源码:https:/

2021-07-27 21:01:24 47

原创 HashMap

HashMap结构机制hash优化int hash = (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16)int index = hash&(2n-1) = hash%2nHashMap容量是2的倍数,因此只有低位才参与运算,高位不参与运算,可能造成hash冲突几率增加。链表转红黑树put后 链表长度>=8 并且 表的长度>=64红黑树转链表扩容-拆树,如果拆分后的树小于等于6,则转为链

2021-07-27 21:00:33 70

原创 并发编程 概括

基本概念和原理进程和线程进程和线程需要从操作系统层面理解进程包括:唯一的进程标识可执行代码安全的上下文环境变量虚拟(内存)地址空间系统对象的引用,文件,设备,socket,窗口至少一个线程,这个线程称为主线程线程包括唯一的线程标识共享进程的虚拟(内存)地址空间共享进程的系统资源线程上下文本地线程存储总结进程是资源分配的最小单位,线程是CPU调度的最小单位。进程是对正在运行的程序的抽象,注意:一个程序可以有多个进程进程是线程的容器,一个进程包括一个或多个线程线程共享

2021-07-27 20:59:04 381

原创 并发编程0 基本概念

基本概念和原理进程和线程进程和线程需要从操作系统层面理解进程包括:唯一的进程标识可执行代码安全的上下文环境变量虚拟(内存)地址空间系统对象的引用,文件,设备,socket,窗口至少一个线程,这个线程称为主线程线程包括唯一的线程标识共享进程的虚拟(内存)地址空间共享进程的系统资源线程上下文本地线程存储总结进程是资源分配的最小单位,线程是CPU调度的最小单位。进程是对正在运行的程序的抽象,注意:一个程序可以有多个进程进程是线程的容器,一个进程包括一个或多个线程线程共享

2021-07-27 20:57:12 41

原创 计算机组成原理 CPU概述

搬运:https://www.leixue.com/cpu-compositionCPU 组成部分zifan子凡问答2019-03-02 20:46:06阅读(6566)CPU由运算器、控制器和寄存器组。是计算机的核心,对计算机的整体性能有着决定性的影响。CPU是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU 由运算器、控制器和寄存器组。是计算机的核心,对计算机的整体性能有着决定性的影响。CPU 是一块超大规模的集成电路,是一

2021-07-27 20:55:50 1426

空空如也

空空如也

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

TA关注的人

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