上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页
摘要: 一、前言 前面学习了Netty的codec框架,下面接着学习ChannelHandler与codec之间的关联。 二、ChannelHandler和codec Netty为不同的协议提供了处理器和编解码器,可以开箱即用,这些工具支持SSL / TLS和WebSocket,以及通过数据压缩使得HTTP 阅读全文
posted @ 2017-05-27 16:30 leesf 阅读(2370) 评论(2) 推荐(1) 编辑
摘要: 一、前言 前面已经学习完了Netty框架中的主要组件,接着学习codec框架。 二、codec框架 每个网络应用程序必须定义如何将在对等体之间传输的原始字节解析并转换为目标程序的数据格式,这种转换逻辑有codec处理,其由编码器和解码器组成,每个编码器和解码器将字节流从一种格式转换到另一种格式。若将 阅读全文
posted @ 2017-05-26 10:57 leesf 阅读(4865) 评论(0) 推荐(3) 编辑
摘要: 一、前言 前面已经学习了Netty的EventLoop以及线程模型,接着学习Netty的Bootstrapping。 二、Bootstrapping 在学习了Netty中的很多组件后,如何将这些组件有效的组合至应用程序中,这需要使用应用引导程序,引导应用程序是将其配置为运行的过程,Netty以一种绝 阅读全文
posted @ 2017-05-25 21:18 leesf 阅读(2546) 评论(2) 推荐(1) 编辑
摘要: 一、前言 在学习了ChannelHandler和ChannelPipeline的有关细节后,接着学习Netty的EventLoop和线程模型。 二、EventLoop和线程模型 2.1. 线程模型 线程池可通过缓存和复用已有线程来提高系统性能,基本的缓冲池模式可描述如下: · 从池中空闲链表中选取线 阅读全文
posted @ 2017-05-25 15:13 leesf 阅读(9082) 评论(0) 推荐(5) 编辑
摘要: 一、前言 前面学习了Netty的ByteBuf,接着学习ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中,ChannelHandler可以被链在一 阅读全文
posted @ 2017-05-25 08:44 leesf 阅读(9014) 评论(1) 推荐(5) 编辑
摘要: 一、前言 前面已经学习了Netty中传输部分,现在接着学习Netty中的ByteBuf。 二、ByteBuf 2.1 ByteBuf API 在网络上传输的数据形式为Byte,Java NIO提供了ByteBuffer来作为Byte容器,该类有些复杂,而Netty使用ByteBuf作为ByteBuf 阅读全文
posted @ 2017-05-24 17:19 leesf 阅读(9085) 评论(0) 推荐(3) 编辑
摘要: 一、前言 在简单学习了Netty中的组件后,接着学习Netty中数据的传输细节。 二、传输 2.1 传输示例 Netty中的数据传输都是使用的字节类型,下面通过一个实例进行说明,该实例中服务器接受请求,然后向客户端发送一个Hi,最后关闭连接。下面是不同方式的实现。 1. OIO方式 OIO与NIO对 阅读全文
posted @ 2017-05-23 20:06 leesf 阅读(2901) 评论(0) 推荐(2) 编辑
摘要: 一、前言 前篇博文体验了Netty的第一个示例,下面接着学习Netty的组件和其设计。 二、核心组件 2.1. Channel、EventLoop和ChannelFuture Netty中的核心组件包括Channel、EventLoop、ChannelFuture。下面进行逐一介绍。 1. Chan 阅读全文
posted @ 2017-05-09 20:26 leesf 阅读(10044) 评论(3) 推荐(5) 编辑
摘要: 一、前言 前面已经学习完了Java NIO的内容,接着来学习Netty,本篇将通过一个简单的应用来了解Netty的使用。 二、Netty应用 2.1 服务端客户端框架图 下图展示了Netty中服务端与客户端在之间的关系,客户端连接至服务器,然后两者之间互相通信,服务器可连接多个客户端。 2.2 服务 阅读全文
posted @ 2017-05-08 15:24 leesf 阅读(7365) 评论(6) 推荐(7) 编辑
摘要: 一、前言 前面已经学习了缓冲和通道,接着学习选择器。 二、选择器 2.1 选择器基础 选择器管理一个被注册的通道集合的信息和它们的就绪状态,通道和选择器一起被注册,并且选择器可更新通道的就绪状态,也可将被唤醒的线程挂起,直到有通道就绪。 SelectableChannel 可被注册到 Selecto 阅读全文
posted @ 2017-04-24 19:31 leesf 阅读(2265) 评论(0) 推荐(2) 编辑
摘要: 一、前言 前面学习了缓冲区的相关知识点,接下来学习通道。 二、通道 2.1 层次结构图 对于通道的类层次结构如下图所示。 其中,Channel是所有类的父类,其定义了通道的基本操作。从 Channel 接口引申出的其他接口都是面向字节的子接口,包括 WritableByteChannel和Reada 阅读全文
posted @ 2017-04-16 17:34 leesf 阅读(5940) 评论(0) 推荐(2) 编辑
摘要: 一、前言 在笔者打算学习Netty框架时,发现很有必要先学习NIO,因此便有了本博文,首先介绍的是NIO中的缓冲。 二、缓冲 2.1 层次结构图 除了布尔类型外,其他基本类型都有相对应的缓冲区类,其继承关系层次图如下。 其中,Buffer是所有类的父类,Buffer中也规定了所有缓冲区的共同行为。 阅读全文
posted @ 2017-04-15 20:00 leesf 阅读(1545) 评论(0) 推荐(4) 编辑
摘要: 一、前言 前面学习了Scala中包和导入的相关知识点,接着学习Traits(特质) 二、Traits Scala的特质与Java的接口基本相同,当遇到可以使用Java接口的情形,就可以考虑使用特质,Scala的类可以使用extends和with关键字继承多个特质,如类或对象继承多个特质 特质除了可以 阅读全文
posted @ 2017-04-14 15:06 leesf 阅读(824) 评论(0) 推荐(1) 编辑
摘要: 一、前言 前面介绍了Scala的Object,由于中间论文的时间耽误了些时间,接着继续学习Scala的Packaging和Imports 二、Packaging and Imports Scala的包用法与Java类似,但更灵活。在class文件顶端使用package语法,并且可以使用带中括号的pa 阅读全文
posted @ 2017-04-11 11:13 leesf 阅读(2124) 评论(0) 推荐(1) 编辑
摘要: Zookeeper源码分析目录如下 1. 【Zookeeper】源码分析之序列化 2. 【Zookeeper】源码分析之持久化(一)之FileTxnLog 3. 【Zookeeper】源码分析之持久化(二)之FileSnap 4. 【Zookeeper】源码分析之持久化(三)之FileTxnSnap 阅读全文
posted @ 2017-03-13 19:56 leesf 阅读(9803) 评论(0) 推荐(8) 编辑
摘要: 一、前言 前面分析了FollowerZooKeeperServer,接着分析ObserverZooKeeperServer。 二、ObserverZooKeeperServer源码分析 2.1 类的继承关系 说明:ObserverZooKeeperServer也继承了LearnerZooKeeper 阅读全文
posted @ 2017-03-08 09:48 leesf 阅读(1217) 评论(0) 推荐(1) 编辑
摘要: 一、前言 前面分析了LeaderZooKeeperServer,接着分析FollowerZooKeeperServer。 二、FollowerZooKeeperServer源码分析 2.1 类的继承关系 说明:其继承LearnerZooKeeperServer抽象类,角色为Follower。其请求处 阅读全文
posted @ 2017-03-08 09:23 leesf 阅读(1529) 评论(0) 推荐(1) 编辑
摘要: 一、前言 前面分析了ZooKeeperServer源码,由于QuorumZooKeeperServer的源码相对简单,于是直接分析LeaderZooKeeperServer。 二、LeaderZooKeeperServer源码分析 2.1 类的继承关系 说明:LeaderZooKeeperServe 阅读全文
posted @ 2017-03-07 21:00 leesf 阅读(2170) 评论(0) 推荐(1) 编辑
摘要: 一、前言 前面阐述了服务器的总体框架,下面来分析服务器的所有父类ZooKeeperServer。 二、ZooKeeperServer源码分析 2.1 类的继承关系 说明:ZooKeeperServer是ZooKeeper中所有服务器的父类,其实现了Session.Expirer和ServerStat 阅读全文
posted @ 2017-03-07 20:08 leesf 阅读(2082) 评论(0) 推荐(3) 编辑
摘要: 一、前言 前面已经介绍了Zookeeper中Leader选举的具体流程,接着来学习Zookeeper中的各种服务器。 二、总体框架图 对于服务器,其框架图如下图所示 说明: ZooKeeperServer,为所有服务器的父类,其请求处理链为PrepRequestProcessor -> SyncRe 阅读全文
posted @ 2017-03-07 15:14 leesf 阅读(2020) 评论(0) 推荐(1) 编辑
摘要: 一、前言 前面学习了Leader选举的总体框架,接着来学习Zookeeper中默认的选举策略,FastLeaderElection。 二、FastLeaderElection源码分析 2.1 类的继承关系 说明:FastLeaderElection实现了Election接口,其需要实现接口中定义的l 阅读全文
posted @ 2017-03-07 09:14 leesf 阅读(6503) 评论(1) 推荐(6) 编辑
摘要: 一、前言 前面学习了Scala的Methods,接着学习Scala中的Object 二、Object Object在Scala有两种含义,在Java中,其代表一个类的实例,而在Scala中,其还是一个关键字,本篇首先将会把object当成一个类的实例看待,展示如何将对象从一种类型转化为另一种类型,之 阅读全文
posted @ 2017-03-03 20:14 leesf 阅读(19237) 评论(2) 推荐(4) 编辑
摘要: 一、前言 分析完了Zookeeper中的网络机制后,接着来分析Zookeeper中一个更为核心的模块,Leader选举。 二、总结框架图 对于Leader选举,其总体框架图如下图所示 说明: 选举的父接口为Election,其定义了lookForLeader和shutdown两个方法,lookFor 阅读全文
posted @ 2017-03-03 09:06 leesf 阅读(3300) 评论(0) 推荐(2) 编辑
摘要: 一、前言 前面已经学习了NIOServerCnxn,接着继续学习NettyServerCnxn。 二、NettyServerCnxn源码分析 2.1 类的继承关系 说明:NettyServerCnxn继承了ServerCnxn抽象类,使用Netty框架来高效处理与客户端之间的通信。 2.2 类的内部 阅读全文
posted @ 2017-03-02 20:39 leesf 阅读(1914) 评论(0) 推荐(4) 编辑
摘要: 一、前言 前面学习了Scala的Class,下面接着学习Method(方法)。 二、Method Scala的方法与Java的方法类似,都是添加至类中的行为,但是在具体的实现细节上差异很大,下面展示一个参数为整形,返回值为String的方法定义 Scala中的方法可以写的更为简洁,如下 将参数值加1 阅读全文
posted @ 2017-03-02 08:24 leesf 阅读(1884) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 13 下一页