摘要:
ThreadLocal spring的声明式事务会使用到,保证当前线程中数据库连接是同一个连接 强引用 只要一对象有强引用,垃圾回收机制不会回收 软引用 在内存不够用时,会优先回收只有软引用的内存空间,主要是做缓存用 弱引用 只要是触发垃圾回收机制进行回收,只具有弱引用的对象就会被回收 tomcat 阅读全文
摘要:
概述 AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我们通过AQS的类图先看一下大概,下面我们总结一下AQS的实现原理。先看看AQS的类图。 (1)AQS是一个通过内置的F 阅读全文
摘要:
ReentrantLock(可重入锁) 概念 ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,支持重入性,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。在java关键字synchronized隐式支持重入性,synchr 阅读全文
摘要:
volatile 作用 保证线程可见性 使用volatile,将会强制所有线程都去堆内存中读取变量的值 -MESI(CPU的缓存一致性协议) 详细可看 https://www.cnblogs.com/z00377750/p/9180644.html 禁止指令重排序(CPU级别的支持) cpu级别增加 阅读全文
摘要:
分布式锁 分布式锁的思路是每个客户端都在某个目录下注册一个临时有序节点,每次最小的节点会获取锁,当前节点会去监听上一个较小节点,如果较小节点失效之后,就会去获取锁。 java原生zookeeper客户端 引入jar包 <dependency> <groupId>org.apache.zookeepe 阅读全文
摘要:
官方文档地址 Zookeeper介绍 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 Zooke 阅读全文
摘要:
Zab算法描述 Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。 Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。 Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复 的 原子广播协议 ,是Zo 阅读全文
摘要:
paxos目的 Paxos算法是基于消息传递且具有高度容错特性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一,其解决的问题就是在分布式系统中如何就某个值(决议)达成一致。 Paxos算法的前提假设是不存在拜占庭将军问题,即: 信道是安全的(信道可靠),发出的信号不会被篡改,因为Pax 阅读全文
摘要:
分布式的问题 分布式因为网络的不确定性,节点故障等情况,会带来各种复杂的问题。我们在学习分布式的相关理论时,一定要明确这样一个道理,就是:网络不可靠,网络分区以及节点宕机是常态,另外网络带宽资源是及其珍贵的,我们必须在网络不可靠、分区以及节点宕机的前提下,构建高性能、高可用的分布式系统。 分布式环境 阅读全文
摘要:
安装环境 系统:CentOS 7 Java环境: JDK8 下载及安装 Zookeeper有单机、伪集群、集群三种部署方式,我使用的Zookeeper版本是:Zookeeper-3.5.9 下载Zookeeper wget https://apache.claz.org/Zookeeper/Zook 阅读全文