04 2020 档案

摘要:数据库事务的特性包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabilily),简称 ACID。 并发事务带来的影响 在数据库执行中,如果多个事务同时对同一份数据进行读写就容易出现数据不一致的情况,如下: 1.出现脏读情况 是指一个事 阅读全文
posted @ 2020-04-29 22:55 sw_kong 阅读(169) 评论(0) 推荐(0) 编辑
摘要:Kafka 在执行消息的写入和读取这么快的原因,其中的一个原因是零拷贝(Zero-copy)技术,下面我们来了解一下这么高效的原因。 传统的文件读写 传统的文件读写或者网络传输,通常需要将数据从内核态转换为用户态。应用程序读取用户态内存数据,写入文件 / Socket之前,需要从用户态转换为内核态之 阅读全文
posted @ 2020-04-29 13:29 sw_kong 阅读(9230) 评论(0) 推荐(2) 编辑
摘要:在分布式场景中,ZooKeeper 的应用非常广泛,比如数据发布和订阅、命名服务、配置中心、注册中心、分布式锁等。 ZooKeeper 提供了一个类似 Linux 文件系统的数据模型,和基于 Watcher 机制的分布式事件通知,这些特性都依赖 ZooKeeper 的高容错数据一致性协议。 那么问题 阅读全文
posted @ 2020-04-27 13:16 sw_kong 阅读(13006) 评论(2) 推荐(4) 编辑
摘要:什么是单例模式 单例模式指的是,保证一个类只有一个实例,并且提供一个可以全局访问的入口。 为什么需要使用单例模式 那么我们为什么需要单例呢?其中一个理由,那就是为了节省内存、节省计算。因为在很多情况下,我们只需要一个实例就够了,如果出现更多的实例,反而纯属浪费。 下面我们举一个例子来说明这个情况,以 阅读全文
posted @ 2020-04-25 18:38 sw_kong 阅读(6983) 评论(3) 推荐(8) 编辑
摘要:在 CopyOnWriteArrayList 出现之前,我们已经有了 ArrayList 和 LinkedList 作为 List 的数组和链表的实现,而且也有了线程安全的 Vector 和 Collections.synchronizedList() 可以使用。所以首先就让我们来看下线程安全的 V 阅读全文
posted @ 2020-04-25 18:21 sw_kong 阅读(11244) 评论(2) 推荐(2) 编辑
摘要:在没有读写锁之前,假设使用普通的 ReentrantLock,那么虽然保证了线程安全,但是也浪费了一定的资源,因为如果多个读操作同时进行,其实并没有线程安全问题,可以允许让多个读操作并行,以便提高程序效率。 但是写操作不是线程安全的,如果多个线程同时写,或者在写的同时进行读操作,便会造成线程安全问题 阅读全文
posted @ 2020-04-25 17:37 sw_kong 阅读(434) 评论(0) 推荐(0) 编辑
摘要:CPU 密集型任务 CPU 密集型任务,比如大量复杂计算需要耗费 CPU 资源的任务。对于这样的任务最佳的线程数为 CPU 核心数的 1~2 倍,如果设置过多的线程数,实际上并不会起到很好的效果。此时假设我们设置的线程数量是 CPU 核心数的 2 倍以上,因为计算任务非常重,会占用大量的 CPU 资 阅读全文
posted @ 2020-04-25 16:59 sw_kong 阅读(607) 评论(0) 推荐(0) 编辑
摘要:在了解Quorum机制之前,先回顾一下数据一致性 强一致性:在任意时刻,从任意不同副本取出的值都是一样的。 弱一致性:有时泛指最终一致性,是指在任意时刻,可能由于网络延迟或者设备异常等原因,不同副本中的值可能会不一样,但经过一段时间后,最终会变成一样。 显然,我们更想要做到强一致性的这种效果,那么有 阅读全文
posted @ 2020-04-25 12:50 sw_kong 阅读(9534) 评论(0) 推荐(2) 编辑
摘要:CAP理论及BASE理论的关系 base理论是在cap理论的基础上发展的,cap描述了分布式系统中数据一致性,可用性,分区容错性之间的制约关系。当你选择其中两个的时候,就不得不对另外一个做出一定的牺牲。 base理论则是对cap理论的实际应用,也就是在分区和副本存在的前提下,通过一定的系统设计方案, 阅读全文
posted @ 2020-04-25 12:07 sw_kong 阅读(687) 评论(0) 推荐(0) 编辑
摘要:一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 Consistency 一致性是指 “all nodes see the same data at the same time.” 阅读全文
posted @ 2020-04-19 11:45 sw_kong 阅读(391) 评论(0) 推荐(0) 编辑
摘要:为什么需要分布式事物 比如某一系统中,有两个独立的微服务,一个是订单服务,一个是库存服务。这俩服务各自都有一个自己的数据库。 那么一个用户在下单时候怎么保证在订单库里有一条订单数据,同时,库存数据库的数据也能相应的减少,让两边数据维持着一致性,不能出现订单创建完成,而库存没有对应减少的情况,这就需要 阅读全文
posted @ 2020-04-18 18:43 sw_kong 阅读(372) 评论(0) 推荐(1) 编辑
摘要:在通常的业务开发中,ThreadLocal 有两种典型的使用场景 场景1: ThreadLocal 用作保存每个线程独享的对象,为每个线程都创建一个副本,这样每个线程都可以修改自己所拥有的副本, 而不会影响其他线程的副本,确保了线程安全。 场景2: ThreadLocal 用作每个线程内需要独立保存 阅读全文
posted @ 2020-04-12 13:31 sw_kong 阅读(40998) 评论(7) 推荐(7) 编辑