Netty NIO
文章平均质量分 95
凌霄~
every morning you have two choices, continue to sleep with your dreams or wake up and chase them
展开
-
Zeus源码解读之定时任务执行与手动执行任务的过程分析
Zeus源码解读之定时任务执行与手动执行任务的过程分析zeus集群依赖任务执行模式 宙斯中任务出去任务独立调度之外,支持任务直接的复杂依赖调度,如下图一所示: 图1 A为根任务,B,C依赖A任务,D任务依赖B,C,只有当A执行成功之后,B,C才会执行,只有B,C都执行成功之后,D任务才会执行,C执行失败的情况,D就不会执行。zeus集群依赖任务DAG执行过程源码解读 Zeus的定时调度任务利原创 2017-11-06 16:41:14 · 1960 阅读 · 0 评论 -
Netty源码分析---FastThreadLocal
FastThreadLocal实现原理 FastThreadLocal是JDK中ThreadLocal的扩充,通过对重建FastThreadLocal的线程建立索引的方式来存储线程本地变量。get set值的过程中根据整形索引index实现线程本地变量的快速访问。通过index索引访问线程本地变量具有比ThreadLocal通过ThreadLocalMap访问线程变量更快的效率。 Thread...原创 2018-10-01 00:06:49 · 334 阅读 · 0 评论 -
HashedWheelTimer实现定时调度任务以及源码分析
HashedWheelTimer实现定时调度任务 HashedWheelTimer 主要用来高效处理大量定时任务, 且任务对时间精度要求相对不高, 比如链接超时管理等场景, 缺点是, 内存占用相对较高. @Test public void test3() throws InterruptedException { DateTimeFormatter forma...原创 2018-08-30 01:13:07 · 1865 阅读 · 1 评论 -
Spark RPC架构源码解读
Spark RPC基本架构 spark-network-common模块通过Netty4的基础api实现了Spark中整个核心的RPC实现过程。Spark中RPC框架架构基本架构图如下: Spark的RPC框架所包含的各个组件如下:TransportContext:传输上下文,包含了用于创建传输服务端(TransportServer)和传输客户端工厂(TransportClientF...原创 2018-08-27 00:04:45 · 597 阅读 · 0 评论 -
hera(赫拉)任务调度系统--为数据平台打造的任务调度系统
hera(赫拉)任务调度系统–为数据平台打造的任务调度系统hera项目背景 在大数据部门,随着业务发展,每天承载着成千上万的ETL任务调度,这些任务集中在hive,shell脚本调度。怎么样让大量的ETL任务准确的完成调度而不出现问题,甚至在任务调度执行中出现错误的情况下,任务能够完成自我恢复甚至执行错误告警与完整的日志查询。hera任务调度系统就是在这种背景下衍生的一款分布式调度...原创 2019-05-08 14:46:07 · 12662 阅读 · 5 评论 -
Netty粘包/拆包解决方案
TCP粘包/拆包问题 TCP粘包和拆包示意图如下: TCP粘包/拆包 假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读到的字节数是不确定的,故可能存在以下4中情况. 1. 服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包 2. 服务端一次收到了连个数据包,D1和D2粘合在一起,被称为TCP粘包 3. 服务端分别两次读取到了两...原创 2018-07-09 10:20:12 · 325 阅读 · 0 评论 -
Netty源码分析之EventLoop
Netty源码分析之EventLoopNetty源码分析之EventLoop简述NioEventLoopGroup关于 Reactor 的线程模型NioEventLoopGroup 与 Reactor 线程模型的对应单线程模型多线程模型主从多线程模型NioEventLoopGroup 类层次结构NioEventLoopGroup 实例化过程NioEventLoo原创 2018-01-27 11:18:45 · 611 阅读 · 0 评论 -
Netty源码分析之ChannelPipeline
Channel 与 ChannelPipelineChannelPipeline 的初始化再探ChannelPipeline 实例化过程ChannelInitializer 的添加自定义 ChannelHandler 的添加过程ChannelHandler 的名字自动生成 handler 的名字关于 Pipeline 的事件传输机制Outbound 操作outbound o原创 2018-01-27 01:30:07 · 408 阅读 · 0 评论 -
NIO学习笔记之缓冲区
缓冲区基础属性缓冲区 API存取填充翻转释放压缩标记创建缓冲区复制缓冲区字节缓冲区字节顺序大端字节顺序小端字节顺序直接缓冲区视图缓冲区数据元素视图总结缓冲区基础一个Buffer对象是固定数量的数据的容器。其作用是一个存储器,或者分段运输区,在这里数据可被存储并在之后用于检索。缓冲区可以被写满和释放。对于每个非布尔原始数据类原创 2018-01-06 01:51:50 · 569 阅读 · 0 评论 -
Netty源码分析之Bootstrap启动过程分析
Bootstrap客户端部分连接源码NioSocketChannel 的初始化过程ChannelFactory和Channel 类型的确定Channel 实例化关于unsafe字段的初始化关于 pipeline 的初始化关于 EventLoop 初始化channel 的注册过程handler 的添加过程客户端连接分析服务器端部分Channel 的初始化过程Channel原创 2018-01-23 02:10:56 · 831 阅读 · 0 评论 -
Netty源码分析---MpscLinkedQueue
MpscLinkedQueue是netty自己实现的线程安全的队列,与JDK通过原创 2018-11-18 23:55:25 · 2303 阅读 · 0 评论