• 欢迎访问马东东的博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

面试题解析

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

高并发架构系列:Redis缓存和MySQL数据一致性方案详解

需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更……

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

高并发架构系列:数据库主从同步的3种一致性方案实现,及优劣比较

数据主从同步的由来互联网的很多业务,特别是在高并发的场景下,基本都是读远远大于写,如果数据库读和写的压力都同在一台主机上,这显然不太合理。于是,把一台数据库主机分为单独的一台写主库(主要负责写操作),而把读的数据库压力分配给读的从库,而且读从库可以变为多台,这就是读写分离的典型场景如下:为了进一步的降低数据库端的压力(高并……

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

阿里P8架构师谈:分布式数据库数据一致性的原理、与技术实现方案

背景可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有开源产品ZooKeeper实现的ZAB协议号称超越Paxos。在大数据场景下,分布式数据库的数据一致性管理是……

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

高并发架构系列:Redis为什么是单线程、及高并发快的3大原因详解

Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll……

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

分布式消息系列:详解RocketMQ的架构设计、关键特性、与应用场景

内容大纲: RocketMQ的简介与演进 RocketMQ的架构设计 RocketMQ的关键特性 RocketMQ的应用场景RocketMQ的简介RocketMQ一个纯java、分布式、队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会……

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

高并发编程系列:NIO、BIO、AIO的区别,及NIO的应用和框架选型

谈到并发编程就不得不提到NIO,以及相关的Java NIO框架Netty等,并且在很多面试中也经常提到NIO和AIO、同步和异步、阻塞和非阻塞等的区别。我先简短介绍下几个NIO相关的概念,然后再谈NIO重点掌握内容,以及Java NIO框架选型。高并发编程系列高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK……

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

高并发编程系列:CountDownLatch、Semaphore等4大并发工具类详解

通常我们所说的并发包也就是java.util.concurrent,Java并发编程集中在这个并发包种,主要包含:Java并发工具类和并发容器等。今天主要介绍concurrent包的内容以及4大并发工具类。并发工具包1.并发工具类提供了比synchronized更加高级的各种同步结构:包括CountDownLatch、Cyc……

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

高并发编程系列:并发容器的原理,7大并发容器详解、及使用场景

并发容器的由来在Java并发编程中,经常听到Java集合类,同步容器、并发容器,那么他们有哪些具体分类,以及各自之间的区别和优劣呢?只有把这些梳理清楚了,你才能真正掌握在高并发的环境下,正确使用好并发容器,我们先从Java集合类,同步容器谈起。1.什么是同步容器Java的集合容器框架中,主要有四大类别:List、Set、Qu……

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁如公平锁,乐观锁,悲观锁等等,这篇文章介绍各种锁的分类:公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁分段锁自旋锁乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度,在Java和数据库中都有此概念对应的实际应用。1.乐观锁顾名思义,就是很……

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用

我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突)。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支……

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项

并发编程系列:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景线程池的缘由java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内被创建和销毁,会占用大量的系统时间,影响系统效率。为了解决上面的问题,java中引入了线程池,可以使创建好的线程在指定的时间内由系统统一管理,而不是在执行时创……

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

多线程的缘由在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更”节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段……

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

JVM系列直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full ……

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT之JVM系列直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置今天继续JVM的垃圾回收器详解,如果说垃圾收集算法是JVM内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。常见的垃圾收集器有3类:1.新生代的收集器包括:……

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

BAT必考JVM系列专题 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 垃圾回收算法1.标记清除标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。在标记阶段首先通过根节点(GC Roots),标记所有从根节点开始的对象,未被标记的对象就是未被引用的垃圾对象。然后,在清除……

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。BAT必考JVM系列专题1.JVM内存模型2.JVM垃圾回收算法3.JVM垃圾回收器4.JVM参数详解5.JVM性能调优JVM内存结构由上图可以清楚的看到JVM的内存空间分为3……

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM垃圾收集器。我先从JVM收集器的发展过程谈起,然后再聚焦在G1收集器,从G1的内存模型,再到G1的回收流程,最后再谈谈G1……

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制

摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介……

高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。内容目录:1.哈希表2.ConcurrentHash……