11 2018 档案

启动服务(上)服务端:NioServerSocketChannel 是什么时候激活的
摘要:启动服务(上)服务端:NioServerSocketChannel 是什么时候激活的 [toc] __Netty 系列目录()__ 本文会从请求处理的角度分析 Netty 源码,包含以下 7 个过程:启动服务、构建连接、接收数据、业务处理、发送数据、断开连接、关闭服务。 Netty 服务端启动,最主 阅读全文

posted @ 2018-11-29 20:50 binarylei 阅读(523) 评论(0) 推荐(0) 编辑

Reactor 模型(一)基本并发编程模型
摘要:Reactor 模型(一)基本并发编程模型 在讲解 Reactor 线程模型之前,我们需要先对基本并发编程模型:串行工作模型、并发工作模型进行讲解。 串行工作者模型和并行工作者模型关注的是将任务划分为 2 个阶段:__一是任务的接受阶段;二是任务的处理阶段__。而 Reactor 线程模型关注的是上 阅读全文

posted @ 2018-11-27 08:05 binarylei 阅读(481) 评论(0) 推荐(0) 编辑

并发编程(三)Promise, Future 和 Callback
摘要:并发编程(三)Promise, Future 和 Callback __异步操作的有两个经典接口:Future 和 Promise,其中的 Future 表示一个可能还没有实际完成的异步任务的结果,针对这个结果可以添加 Callback 以便在任务执行成功或失败后做出对应的操作,而 Promise 阅读全文

posted @ 2018-11-27 07:50 binarylei 阅读(1412) 评论(0) 推荐(0) 编辑

并发编程(二)concurrent 工具类
摘要:并发编程(二)concurrent 工具类 一、CountDownLatch 经常用于监听某些初始化操作,等初始化执行完毕后,通知主线程继续工作。 1. 声明一个 CountDownLatch 对象,参数 2 表示被阻塞的线程需要被唤醒再次才能执行。 2. countDown() 调用两次后,主线程 阅读全文

posted @ 2018-11-27 07:46 binarylei 阅读(309) 评论(0) 推荐(0) 编辑

并发编程(一)同步类容器和并发类容器
摘要:并发编程(一)同步类容器和并发类容器 一、同步类容器 同步类容器是 __线程安全__ 的,如 Vector、HashTable 等容器的同步功能都是由 等工厂方法去创建实现的,底层使用 synchronized 关键字,每次只有一个线程访问容器。这明显__不满足高并发的需求__。 __源代码:__ 阅读全文

posted @ 2018-11-27 07:42 binarylei 阅读(220) 评论(0) 推荐(0) 编辑

Executor(二)ThreadPoolExecutor、ScheduledThreadPoolExecutor 及 Executors 工厂类
摘要:Executor(二)ThreadPoolExecutor、ScheduledThreadPoolExecutor 及 Executors 工厂类 Java 中的线程池类有两个,分别是:ThreadPoolExecutor 和 ScheduledThreadPoolExecutor,这两个类都继承自 阅读全文

posted @ 2018-11-27 07:40 binarylei 阅读(337) 评论(0) 推荐(0) 编辑

Executor(一)ExecutorService 线程池
摘要:Executor(一)ExecutorService 线程池 本篇主要涉及到的是 java.util.concurrent 包中的 ExecutorService。ExecutorService 就是 Java 中对线程池的实现。 一、ExecutorService 介绍 Java API 对 Ex 阅读全文

posted @ 2018-11-27 07:39 binarylei 阅读(707) 评论(0) 推荐(0) 编辑

Java NIO系列教程(一四) Files
摘要:Java NIO系列教程(一四) Files 阅读全文

posted @ 2018-11-18 13:20 binarylei 阅读(163) 评论(0) 推荐(0) 编辑

Java NIO系列教程(一三) Path
摘要:Java NIO系列教程(一三) Path 阅读全文

posted @ 2018-11-18 13:13 binarylei 阅读(156) 评论(0) 推荐(0) 编辑

Java NIO系列教程(十一) Java NIO 与 IO
摘要:Java NIO系列教程(十一) Java NIO与IO 当学习了 Java NIO 和 IO 的 API 后,一个问题马上涌入脑海: 我应该何时使用 IO,何时使用 NIO 呢?在本文中,我会尽量清晰地解析 Java NIO 和 IO 的差异、它们的使用场景,以及它们如何影响您的代码设计。 下表总 阅读全文

posted @ 2018-11-18 13:07 binarylei 阅读(309) 评论(0) 推荐(0) 编辑

Java NIO系列教程(十一) Pipe
摘要:Java NIO系列教程(十一) Pipe Java NIO 管道是 2 个线程之间的单向数据连接。Pipe 有一个 source 通道和一个 sink 通道。数据会被写到 sink 通道,从 source 通道读取。 这里是 Pipe 原理的图示: 一、创建管道 通过 Pipe.open() 方法 阅读全文

posted @ 2018-11-18 13:00 binarylei 阅读(258) 评论(0) 推荐(0) 编辑

Java NIO系列教程(十)DatagramChannel
摘要:Java NIO系列教程(十)DatagramChannel 转载自 "并发编程网 – ifeve.com" ,本文链接地址: "Java NIO系列教程(十) Java NIO DatagramChannel" 阅读全文

posted @ 2018-11-18 12:57 binarylei 阅读(209) 评论(0) 推荐(0) 编辑

Java NIO系列教程(九) ServerSocketChannel
摘要:Java NIO系列教程(九) ServerSocketChannel Java NIO 中的 ServerSocketChannel 是一个可以监听新进来的 TCP 连接的通道, 就像标准 IO 中的 ServerSocket 一样。ServerSocketChannel 类在 java.nio. 阅读全文

posted @ 2018-11-18 12:56 binarylei 阅读(470) 评论(0) 推荐(0) 编辑

Java NIO系列教程(八) SocketChannel
摘要:Java NIO系列教程(八) SocketChannel Java NIO 中的 SocketChannel 是一个连接到 TCP 网络套接字的通道。可以通过以下 2 种方式创建 SocketChannel: 打开一个 SocketChannel 并连接到互联网上的某台服务器。 一个新连接到达 S 阅读全文

posted @ 2018-11-18 12:46 binarylei 阅读(501) 评论(0) 推荐(0) 编辑

Java NIO系列教程(七) FileChannel
摘要:Java NIO系列教程(七) FileChannel Java NIO 中的 FileChannel 是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel 无法设置为非阻塞模式,它总是运行在阻塞模式下。 一、打开 FileChannel 在使用 FileChannel 之前, 阅读全文

posted @ 2018-11-18 12:34 binarylei 阅读(657) 评论(0) 推荐(0) 编辑

Java NIO系列教程(六) Selector
摘要:Java NIO系列教程(六) Selector Selector(选择器)是 Java NIO 中能够检测一到多个 NIO 通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个 channel,从而管理多个网络连接。 "深入浅出NIO Socket实现机制" 一、 阅读全文

posted @ 2018-11-18 12:26 binarylei 阅读(382) 评论(0) 推荐(0) 编辑

Java NIO系列教程(五) 通道之间的数据传输
摘要:Java NIO系列教程(五) 通道之间的数据传输 在 Java NIO 中,如果两个通道中有一个是 FileChannel,那你可以直接将数据从一个 channel(译者注:channel 中文常译作通道)传输到另外一个 channel。 一、通道的基本操作 二、直接缓冲区拷贝文件 三、trans 阅读全文

posted @ 2018-11-18 12:10 binarylei 阅读(439) 评论(0) 推荐(0) 编辑

Java NIO系列教程(四) Scatter 和 Gather
摘要:Java NIO系列教程(四) Scatter 和 Gather Java NIO 开始支持 scatter/gather,scatter/gather 用于描述从 Channel(译者注:Channel 在中文经常翻译为通道)中读取或者写入到 Channel 的操作。 从 Channel 中读取是 阅读全文

posted @ 2018-11-18 11:58 binarylei 阅读(340) 评论(0) 推荐(0) 编辑

Java NIO系列教程(三) Buffer
摘要:Java NIO系列教程(三) Buffer Java NIO 中的 Buffer 用于和 NIO 通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成 NIO Buffer 对象,并提供了一组方法,用 阅读全文

posted @ 2018-11-18 11:41 binarylei 阅读(407) 评论(0) 推荐(0) 编辑

Java NIO系列教程(二) Channel
摘要:Java NIO系列教程(二) Channel Java NIO 的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个 Buffer,或者总是要从一个 Buffer 中写入。 正如上面所说,从通道读取数 阅读全文

posted @ 2018-11-18 11:29 binarylei 阅读(392) 评论(0) 推荐(0) 编辑

Java NIO系列教程(一) Java NIO 概述
摘要:Java NIO系列教程(一) Java NIO 概述 Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如 阅读全文

posted @ 2018-11-18 11:27 binarylei 阅读(521) 评论(0) 推荐(0) 编辑

Zookeeper 源码(七)请求处理
摘要:Zookeeper 源码(七)请求处理 以单机启动为例讲解 Zookeeper 是如何处理请求的。先回顾一下单机时的请求处理链。 请求的调用链如下: PrepRequestProcessor.processRequest() submittedRequests = new LinkedBlockin 阅读全文

posted @ 2018-11-14 21:05 binarylei 阅读(442) 评论(0) 推荐(0) 编辑

Zookeeper 源码(六)Leader-Follower-Observer
摘要:Zookeeper 源码(六)Leader Follower Observer 上一节介绍了 Leader 选举的全过程,本节讲解一下 Leader Follower Observer 服务器的三种角色。经过 Leader 选举后各服务器都能确定自己的角色,下一步就是初始化各自的角色。 先回顾一下【 阅读全文

posted @ 2018-11-14 08:24 binarylei 阅读(383) 评论(0) 推荐(0) 编辑

Zookeeper 源码(五)Leader 选举
摘要:Zookeeper 源码(五)Leader 选举 前面学习了 Zookeeper 服务端的相关细节,其中对于集群启动而言,很重要的一部分就是 Leader 选举,接着就开始深入学习 Leader 选举。 一、选举规则 Leader 选举是保证分布式数据一致性的关键所在。当 Zookeeper 集群中 阅读全文

posted @ 2018-11-13 06:45 binarylei 阅读(349) 评论(0) 推荐(0) 编辑

Zookeeper 源码(四)Zookeeper 服务端源码
摘要:Zookeeper 源码(四)Zookeeper 服务端源码 Zookeeper 服务端的启动入口为 QuorumPeerMain 一、单机启动 __(1) 启动入口__【ZooKeeperServerMain】 __(2) 核心启动方法__【ZooKeeperServerMain】 __(3) Z 阅读全文

posted @ 2018-11-12 20:19 binarylei 阅读(431) 评论(0) 推荐(0) 编辑

Zookeeper 源码(三)Zookeeper 客户端源码
摘要:Zookeeper 源码(三)Zookeeper 客户端源码 Zookeeper 客户端主要有以下几个重要的组件。客户端会话创建可以分为三个阶段:一是初始化阶段、二是会话创建阶段、三是响应处理阶段。 类 | 说明 | Zookeeper | Zookeeper 客户端入口 ClientWatchMa 阅读全文

posted @ 2018-11-09 07:29 binarylei 阅读(809) 评论(1) 推荐(0) 编辑

Zookeeper 源码(二)序列化组件 Jute
摘要:Zookeeper 源码(二)序列化组件 Jute 一、序列化组件 Jute 对于一个网络通信,首先需要解决的就是对数据的序列化和反序列化处理,在 ZooKeeper 中,使用了Jute 这一序列化组件来进行数据的序列化和反序列化操作。同时,为了实现一个高效的网络通信程序,良好的通信协议设计也是至关 阅读全文

posted @ 2018-11-08 07:28 binarylei 阅读(394) 评论(0) 推荐(0) 编辑

Zookeeper 目录
摘要:Zookeeper 目录 Zookeeper 致力于提供一个高性能、高可用,且具有严格的顺序访问控制能力(主要是写操作的严格顺序性)的分布式协调服务。以下是我整理的笔记。 一、分布式理论基础 "1.1 从 ACID 到 CAP 到 BASE" "1.2 一致性算法:2PC 到 3PC 到 Paxos 阅读全文

posted @ 2018-11-06 13:23 binarylei 阅读(273) 评论(0) 推荐(0) 编辑

分布式理论系列(三)ZAB 协议
摘要:分布式理论系列(三)ZAB 协议 在学习了 Paxos 后,接下来学习 Paxos 在开源软件 Zookeeper 中的应用。 一、Zookeeper Zookeeper 致力于提供一个高性能、高可用,且具有严格的顺序访问控制能力(主要是写操作的严格顺序性)的分布式协调服务。高性能使得 Zookee 阅读全文

posted @ 2018-11-05 22:24 binarylei 阅读(833) 评论(0) 推荐(0) 编辑

分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab
摘要:分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab 本文介绍一致性算法: 2PC 到 3PC 到 Paxos 到 Raft 到 Zab __两类一致性算法(操作原子性与副本一致性)__ 协议用于保证属于多个数据分片上的操作的原子性。这些数据分片可能分布在不同 阅读全文

posted @ 2018-11-04 21:42 binarylei 阅读(3326) 评论(1) 推荐(0) 编辑

分布式理论系列(一)从 ACID 到 CAP 到 BASE
摘要:分布式理论系列(一)从 ACID 到 CAP 到 BASE 一、ACID 1.1 事务的四个特征: __(1) Atomic(原子性)__ 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行,任何一项失败,整个事务回滚,只有全部都执行成功,整个事 阅读全文

posted @ 2018-11-04 11:09 binarylei 阅读(613) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示