1. yarn的前世今生yarn为什么会诞生?Yarn干什么用的?在Hadoop1.x版本中并没有yarn,直到Hadoop2.x版本才有yarn的诞生。首先,在Hadoop1.0版本,存在的最大的问题就是资源管理问题!!!随着技术的发展,Hadoop集群只使用mapreduce一个计算框架,出现了很多计算框架(例如:spark,mars等一系列计算框架)人们更希望有一套合理的管理机制,来控制整个
作者:雨点的名字Redisson实现分布式锁有关Redisson作为实现分布式锁,总的分3大模块来讲。1、Redisson实现分布式锁原理 2、Redisson实现分布式锁的源码解析 3、Redisson实现分布式锁的项目代码(可以用于实际项目中)本文只介绍Redisson如何实现分布式锁的原理。一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高
SpringMVC的工作原理图:SpringMVC流程1、  用户发送请求至前端控制器DispatcherServlet。2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherSe
在阅读本文之前,请先阅读Flink 原理实现:Window机制,这篇文章从用户的角度,对Window做了比较详细的分析,而本文主要是从Flink框架的实现层面,对Window做另一个角度的分析。首先看一个比较简单的情况,假设我们在一个KeyedStream上做了一个10秒钟的tumbling processing time window,也就是说,每隔10秒钟窗口会触发一次,即: dat...
转载 2021-06-10 19:51:56
514阅读
在阅读本文之前,请先阅读Flink 原理实现:Window机制,这篇文章从用户的角度,对Window做了比较详细的分析,而本文主要是从Flink框架的实现层面,对Window做另一个角度的分析。首先看一个比较简单的情况,假设我们在一个KeyedStream上做了一个10秒钟的tumbling processing time window,也就是说,每隔10秒钟窗口会触发一次,即: dat...
转载 2021-06-10 20:25:39
522阅读
kvo(key value observe)用于一个对象监听另外一个对象的属性的改变。kvo实现原理kvo是基于runtime实现的,当一个对象第一次被观察的时候,系统会在运行时动态的为该对象所属的类添加一个派生类,然后将对象的isa指针指向这个派生类,该对象就变成了派生类的对象,在这个派生类中重写基类中所有被观察的属性的setter方法,然后由这个派生类中的setter方法负责通知属性的改变状况
目录1、什么是redis2、为什么会出现redis3、应用场景  4、架构原理5、IO多路复用机制6、redis为什么快7、redis 数据淘汰策略8、数据类型以及使用场景9、持久化流程10、常见问题解决方案1、什么是redisRedis是一个开源的key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链
文章目录前言Redis集群使用为Redis集群使用Hash使用Hash的问题一致性hash算法的神秘面纱一致性Hash算法的容错性和可扩展性Hash环的数据倾斜问题结语 前言一致性Hash算法在分布式中普遍使用,那么它到底是何方神圣呢?为何会用到它呢?与其他的算法如取模相比有何优势?在使用的过程中有何问题,又怎么解决?下面来一步步揭开它的神秘面纱。注:本篇博客相当于转载,中间加了一些理解,原地址
一、MQ解决了什么问题1、异步通信:有些业务不想也不需要立即处理消息,消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。消息会在队列中堆积,然后在需要的时候再去处理它们2、解耦降低工程间的强依赖程度,针对异构系统进行适配。在项目启动之初来预测项目将来会遇见什么需求,是极其困难的。通过消息系统在处理中间插入一个隐含的,基于数据的接口层,两边的处理过程都要实现这一接口当应用发生
注:Apple 的文档对 KVO 实现的描述: Automatic key-value observing is implemented using a technique called isa-swizzling... When an observer is registered for an attribute of an object the isa pointer of the obser
jQuery是为了改变javascript的编码方式而设计的。jQuery本身并不是UI组件库或其他的一般AJAX类库。那么它是如何实现它的声明的呢?先看一段简短的使用流程:(1)、查找(创建)jQuery对象:$(”selector”);(2)、调用jQuery对象的方法完成我们需要完成的工作:$(”selector”).doOurWork();可以说,是用最简单的编码逻辑来改变javascri
对一个volatile变量的读,总是能看到(任意线程)对这个volatile变量最后的写入。对任意单个volatile变量的读/写具有原子性,但类似于volatile++这种复合操作不具有原子性。
原创 2017-12-30 22:45:56
6120阅读
ReentrantLock实现原理使用synchronized来做同步处理时,锁的获取和释放都是隐式的,实现原理是通过编译后加上不同的机器指令来实现。而ReentrantLock就是一个普通的类,它是基于AQS(AbstractQueuedSynchronizer)来实现的。是一个重入锁:一个线程获得了锁之后仍然可以反复的加锁,不会出现自己阻塞自己的情况。AQS是Java并发包里实现锁、同步的一
转载 2019-02-03 11:34:36
744阅读
Synchronized实现原理
转载 2021-07-27 15:12:59
86阅读
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi
原创 2021-07-28 15:11:41
51阅读
1.前言 defer语句用于延迟函数的调用, 每次defer会把所在函数压入栈中, 函数在返回前再把延迟函数取出执行。 defer 函数所在的函数称为主函数, defer语句关联的函数称为延迟函数 延迟函数可能有输入参数,这些参数可能来源于定义defer的函数,延迟函数也可能引用主函数用于返回的变量 ...
转载 2021-06-22 23:36:00
179阅读
2评论
Object 中可以通过 wait() 、notify() 来休眠唤醒。Condition 中同样可以实现这样的效果。 static ReentrantLock lock = new ReentrantLock(); static Condition condition = lock.newCond ...
转载 2021-07-21 15:41:00
171阅读
2评论
# 前言 Cocoa中使用NSNotification、NSNotificationCenter和KVO来实现观察者模式,实现对象间一对多的依赖关系。 本篇文章主要来讨论NSNotification和NSNotificationCenter # NSNotification NSNotificati
HashMap是一个散列桶,用键值对的方式存储数据,采用数组和链表的数据结构,因此它既具有数组线性查找的优点又具有链表寻址修改的优点。它是非线程安全的。HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。主干数组的长度
原创 2021-10-25 09:47:54
86阅读
  • 1
  • 2
  • 3
  • 4
  • 5