自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 Completable 源码解析扩充 <二>

hi,comming againLastYear I already writen those topic ,today I’m going talk it again and fouce on async.first of all ,you should understand the structment of Completable that I talked before ,then you should know how to research the structment on a thread

2023-12-13 17:59:52 385

原创 Flink kafka connectors 源码详解---<3>

fetchTask,与AddSplitTask 之间,需要判断,如果任务队列有其它任务就运行,不然就运行FetcherTask,但是fetchTask 有可能阻塞,原因,在于FutureCompletingBlockingQueue 的容量满了之后,会阻塞线程,就需要wakeUp,打破这个阻塞,打破阻塞就在 添加AddSplitTask 后,对splitFetcher 调用wake()这篇主要是补上篇挖的洞,看看拉取数据的线程模型。fetchTask 中的 wakeUp。这里面要考量的点,包括几点。

2023-01-11 20:09:23 144

原创 Flink kafka connectors 源码详解---<2>

方法,该方法凸出的功能,1.初始化记录当前split的offset,2.ck时,将split、offset 信息作为state保存,3.在KafkaRecordEmitter emit record时,动态更新 offset 信息,保证source 源头,消费的一致性。先了解 SplitFetcherManager,如果去源码的英文注解就可以很明显的知道,它就是要维持一个线程池,同时保存好所有的splitFetcher,splitFetcher,既有run方法,也可以提交任务。有意思的可以去看源码。

2023-01-07 19:24:08 316

原创 Flink kafka connectors 源码详解---<1>

Flink 中kafka 作为Source源头,首先会开始一个SourceCoordinator来与Kafka联系获取所有topic分区,同时兼顾新增tp(topic parition)的检测,在根据并行度,根据一个规则(等下用源码展示这个规则)来切分tp,然后,Flink 在并行度work中会开启SourceOperator,并向SourceCoordinator发送注册请求,要求获取split tp,用来后续的消费kafka数据。然后,根据并行度,将topic的分区匀出去。

2023-01-04 22:42:28 542

原创 浅谈 ForkJoinPool 一

5.如果条件2的情况下,ss

2022-07-29 00:23:50 861

原创 Completable 源码解析扩充

此篇文章是在分享文章的基础上的扩充,主要分为两个部分,第一部分是算法部分,再次阅读下Completable的核心算法,第二部分是扩充功能部分,比如Api 中参数Executor的作用、Async的作用、多次Completable的怎么处理。从链接文章中的结构流程示意图中,是不是很明显可以感受到,这里是一个树结构。这里不像二叉树,有左子树、右子树,这里的子节点是没有定量的,由next,将一个节点的子节点链接起来,用src,stack 来连接好父子节点,爷孙节点 等。从源码也可见一般啊,见源码中的注释,用一

2022-07-11 14:43:18 190

原创 线程之Timeout

线程之TimeoutTimeout ,我之前的理解,如果报了TimeoutException,不就意味着程序运行的规定时间到了,程序要结束了。但是再琢磨一下,怎么做呀?怎么定一个时间,等时间结束,程序就结束。看过很多程序结束的方式,其中一种是获得程序运行的线程,然后,调用线程中断命令,当程序中检测到中断指令时,抛出异常,终止程序。等等。。检测到中断指令,怎么才能时刻检测到中断指令,写个死循环?如下面代码这明显有大病,runAnotherCode() 只要跑一次,跑的时候,怎么随时检测中断,以致于将runA

2022-06-15 14:46:13 398

原创 Netty的Recycler 大改版 4.174/5/6/7 版本新解

这次的Recycler 改动很大,照例先说下Recycler的功能点在哪里,要构造一个可以复用的对象,比如:申请一个Buffer,逻辑操作用完后,只需要将Buffer中的数据清楚,接着继续使用Buffer。ok,

2022-05-23 16:39:39 321

原创 Flink Window 触发机制的关键模型

Flink 触发机制的关键模型前面的文章,提到Watermark(以下有wm代替)的时候,就说过wm为触发,提供参照物的作用。今天就看用源码看看。这里有两个情况,先展开讨论下,第一是,没有窗口,也就意味着,每条数据,都需要根据wm来判断是否触发。第二是 ,有窗口,意味着,每个窗口,都需要根据wm来判断是否触发。虽然是两种情况,但是具有共性特征,窗口也有时间,用窗口的endTime代表窗口触发的时间,就和数据触发过程无异了。聊到了这,就有两个问题需要解答,数据或窗口的时间怎么保存,怎么触发。

2022-05-12 18:35:03 558

原创 flink 中WindowAll后的 reduce 并行数为什么是1,但不代表所有的窗口符合该条件

flink 中窗口后的 reduce 并行数为什么是1如何控制并行数,用一个变量存起来呗,parallelism 变量存放某个操作的并行数。一般是有默认配置或者用户指定。那为什么窗口后reduce 只有一个并行数。且无法改变。因为强制把此操作的并行数设置为1 了呗。// 这是 AllWindowedStream类的 reduce(...) 中的一段。很明显在强制操作。 return input.transform(opName, resultType, operator).forceNonPara

2022-05-11 16:44:20 638

原创 Flink Idle 中的设计

Flink Idle 中的设计哈哈… 今天是源码解析天,关于Idle 的,来吧,看看源码中是怎样检测数据源是否要标记位Idle。在StreamSourceContexts 类中可以看到, 内部类 WatermarkContext的构造方法中设置了IdleTimeOut,timeService(这个是一个定时执行的服务),以及调用了scheduleNextIdleDetectionTask()方法。 public WatermarkContext( final Proc

2022-05-07 19:45:28 967

原创 快速用源码了解Flink的watermark 及Idle

快速用源码了解Flink的watermark先回答两个问题WaterMark(以下用wm 表示)的定义是什么,启到了什么作用?根据wm的策略,产生 eventTimeStamp的wm 和 systemTimeStamp 的vm。主要用来表征,数据流现在处理的数据到了哪儿。特征是一直递增,为流处理的触发启到一个参照物的作用。wm 是从哪里产生的,如果数据源部分分区停了怎么办?下游任务面对多个数据源分区是怎么获得wm。wm 如果说是eventTime 产生的,那么数据源就是其产生的源头。数据源分区停

2022-05-06 15:54:50 832

原创 Lock 源码解析

AQS简单了解JAVA并发包中,有很多锁方法,但是Lock是怎么实现?以ReentrantLock为例,来管中窥豹一下。ReentrantLock reentrantLock=new ReentrantLock(); reentrantLock.lock(); reentrantLock.unlock(); // 看看 lock方法是怎么实现的? pub...

2020-01-27 21:26:30 248

原创 从汇编代码理解C中的指针

如题& * 在C语言是很常见的,而且我们大家都知道指针的重要性,对于初学者在理解指针,估计 还会头疼一阵。那么从汇编语言 会不会 降低我们的学习曲线呢?答案是 会,而且理解深刻。首先 理解几个计算机的几个概念。指令1. + A1 ,A21.寄存器,指令1利用cpu 做运算,需要将 A1,A2 分别加载到寄存器中。这里暂用寄存器 %rax,%rcx 来代表 A1,A2 存储的...

2019-12-30 00:57:11 939

原创 JAVA 闭包

最近在看SICP,cool …有点离题,其实不然,在SICP 的视频里,一个教授讲到(原话)—一个我最喜欢的术语 闭包 ,我认为闭包就是你系统中的组合方式,那些你需要组合起来使用的东西,就像我们构建的pair,你可以相同的组合不断构建pair,因此,我不仅可以构建a pair of number,还可以构建 a pair of pairs,再比如说,在Fortran中的array(数组)并不...

2019-12-19 22:59:46 195 1

原创 找到二叉树中的最大搜索二叉子树

哈哈~~如果看过 上篇 迭代中的一些容易忽略的小细节的盆友,脑暴你的还有哦。。。。如题:给定一颗二叉树的头节点head,已知其中所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这颗子树的头节点。本来,按照我非常简易的解题思路是,从根节点找起(顺着来)。1.编写一个可以判断 该二叉树 是不是 搜索二叉树的函数,并返回 flag (用来表示是否为搜索二叉树),外加返回 总共包含多...

2019-12-13 17:50:23 176

原创 Java 中的return

public class LearnL { public static int ll(int a) { if (a > 0) { return -1; } return -3; } public static void main(String[] args) { System.o...

2019-12-13 15:58:51 94

原创 用Java写递归的一些容易忽略的小细节

如题快速介绍下是什么小细节 public static class Node { public int val; public Node left; public Node rigth; public Node(int data){ this.val=data; } } ...

2019-12-13 13:26:02 110

原创 第二弹!关于递归(二叉树、链表反转)

计算机结构 我一直在迭代坑中,这次做一个迭代的主题,分享下我的迭代中成长过程。最经典的莫过于二叉树的迭代public class BinaryTree { public class Node{ public int value; public Node left; public Node right; public No...

2019-12-10 15:45:40 89

原创 漫谈大数据的路线和技能

漫谈大数据 在大数据横飞的时代,我只是表达下个人对大数据技术的看点,没有什么权威性,如果 有经验丰富的大佬 或者 细节控,挑刺王,欢迎吐槽。 1.大数据的技术发展路线 分布式 ,为什么要把分布式 摆在首位,可能大多数人 接触到大数据 都从hadoop集群开始,虽然,大数据的三大基石 是 谷歌的三大论文,但其都建立在分布式理论基础上。 那么学习构建一个简单的分布式系统,恐怕是最好...

2019-12-04 21:27:51 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除