Flink原理与实现:详解Flink中的状态管理 【本文转自Flink原理与实现:详解Flink中的状态管理】Flink原理与实现系列文章 :Flink 原理与实现:架构和拓扑概览Flink 原理与实现:如何生成 StreamGraphFlink 原理与实现:如何生成 JobGraphFlink原理与实现:如何生成ExecutionGraph及物理执行图Flink原理与实现:Operator Chain原理上面Flink原理与实现的文章中,有引用...
Flink及主流流框架比较 引言随着大数据时代的来临,大数据产品层出不穷。我们最近也对一款业内非常火的大数据产品 - Apache Flink做了调研,今天与大家分享一下。Apache Flink(以下简称flink) 是一个旨在提供‘一站式’ 的分布式开源数据处理框架。是不是听起来很像spark?没错,两者都希望提供一个统一功能的计算平台给用户。虽然目标非常类似,但是flink在实现上和spark存在着很大的区别,flin...
浅析——B树,B+树,B*树以及分析MySQL的两种引擎 【本文转自浅析——B树,B+树,B*树以及分析MySQL的两种引擎】接触到了数据结构当中的B树,B+树,B*树,我觉得应该写一篇博客记录下,毕竟是第一次接触的,只有写了博客以后,感觉对这个的印象才会更加深刻。 前言: 为什么要有B树? 学习任何一个东西我们都要知道为什么要有它,B树也一样,既然存储数据,我们为什么不用红黑树呢?这个要从几个方面来说了, 计算机有一个局部性原理,就是说,当一个数据被用...
Flink流计算编程--watermark(水位线)简介 【本文转自Flink流计算编程--watermark(水位线)简介】1、watermark的概念watermark是一种衡量Event Time进展的机制,它是数据本身的一个隐藏属性。通常基于Event Time的数据,自身都包含一个timestamp,例如1472693399700(2016-09-01 09:29:59.700),而这条数据的watermark时间则可能是:watermark(...
disruptor-3.3.2源码解析汇总 【本文转自disruptor-3.3.2源码解析汇总】disruptor-3.3.2源码解析(1)-序列 disruptor-3.3.2源码解析(2)-队列 disruptor-3.3.2源码解析(3)-发布事件 disruptor-3.3.2源码解析(4)-处理事件 disruptor-3.3.2源码解析(5)-框架支持疑问总结:1、sequencer.getHighestPublishedSe...
Java类的卸载机制 类的生命周期 当Sample类被加载、连接和初始化后,它的生命周期就开始了。 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的生命周期。 由此可见,一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期。 引用关系 加载器和Class对象: 在类加载器的内部实现中...
Zookeeper全解析——Client端(转) 【本文转自Zookeeper全解析——Client端(转)】【点击这里有不错的zookeeper系列文章】Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。在看完ZK Client的大致...
简单了解Disruptor 本文转载自并发编程网 – ifeve.com 本文链接地址: 简单了解Disruptor1. Disruptor是什么1.1 技术背景LMAX是在英国注册并受到FCA监管(监管号码为509778)的外汇黄金交易所, LMAX架构是LMAX内部研发并应用到交易系统的一种技术。它之所以引起人们的关注,是因为它是一个非常高性能系统,这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,官方号称...
字符串匹配的KMP算法 【本文转自字符串匹配的KMP算法】 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。 这种算法不太容易理解,...
ConcurrentHashMap ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get...
深入分析Java ClassLoader原理 【本文转自深入分析Java ClassLoader原理】一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一...
拜占庭将军问题深入探讨 【本文转自拜占庭将军问题深入探讨】了解过比特币和区块链的人,多少都听说过拜占庭将军问题,或听说过比特币(或区块链)的一个重要成就正是解决了拜占庭将军问题。但真正明白这个问题的人并不多,甚至知道这个问题实质的人都很罕见。本文是一篇技术科普,将重点提供了拜占庭将军问题本身对本质及经典算法的解析,并探讨与之相关的一些问题。笔者参考了不少文献,夹杂了大量私货,但并没有提出解决该问题的新算法,这也不是本文的...
服务化框架技术选型与京东JSF解密 作者:章耿,原京东资深架构师,曾负责京东服务框架,配置中心等基础平台。近十年工作经验,专注于基础中间件等底层技术架构,对分布式系统/服务化/DevOps建设有一定经验。 |前言 首先本文不讨论为什么要服务化,包括服务化的优点缺点。 其次本文也不讨论什么是微服务,也不讨论微服务和SOA的区别。 最后本文也不讨论哪个技术最优。 |服务化框架构成最基本的
探索 ConcurrentHashMap 高并发性的实现机制 【本文转自探索 ConcurrentHashMap 高并发性的实现机制】简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅
Linux下JAVA线程占用CPU高一点分享 【本文转自Linux下JAVA线程占用CPU高一点分享】上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程 top -Hp 28174 -d 1 -n 1 32694 root 20 0 3249
Netty线程模型详解 【本文转载自Netty线程模型详解】1. 背景1.1. Java线程模型的演进1.1.1. 单线程时间回到十几年前,那时主流的CPU都还是单核(除了商用高性能的小机),CPU的核心频率是机器最重要的指标之一。在Java领域当时比较流行的是单线程编程,对于CPU密集型的应用程序而言,频繁的通过多线程进行协作和抢占时间片反而会降低性能。1.1.2
【读过最好的】Linux IO模式及 select、poll、epoll详解 本文转自Linux IO模式及 select、poll、epoll详解注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。