上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页

2018年11月18日

摘要: Java NIO系列教程(一四) Files 阅读全文
posted @ 2018-11-18 13:20 binarylei 阅读(172) 评论(0) 推荐(0)
摘要: Java NIO系列教程(一三) Path 阅读全文
posted @ 2018-11-18 13:13 binarylei 阅读(165) 评论(0) 推荐(0)
摘要: Java NIO系列教程(十一) Java NIO与IO 当学习了 Java NIO 和 IO 的 API 后,一个问题马上涌入脑海: 我应该何时使用 IO,何时使用 NIO 呢?在本文中,我会尽量清晰地解析 Java NIO 和 IO 的差异、它们的使用场景,以及它们如何影响您的代码设计。 下表总 阅读全文
posted @ 2018-11-18 13:07 binarylei 阅读(326) 评论(0) 推荐(0)
摘要: Java NIO系列教程(十一) Pipe Java NIO 管道是 2 个线程之间的单向数据连接。Pipe 有一个 source 通道和一个 sink 通道。数据会被写到 sink 通道,从 source 通道读取。 这里是 Pipe 原理的图示: 一、创建管道 通过 Pipe.open() 方法 阅读全文
posted @ 2018-11-18 13:00 binarylei 阅读(281) 评论(0) 推荐(0)
摘要: Java NIO系列教程(十)DatagramChannel 转载自 "并发编程网 – ifeve.com" ,本文链接地址: "Java NIO系列教程(十) Java NIO DatagramChannel" 阅读全文
posted @ 2018-11-18 12:57 binarylei 阅读(215) 评论(0) 推荐(0)
摘要: Java NIO系列教程(九) ServerSocketChannel Java NIO 中的 ServerSocketChannel 是一个可以监听新进来的 TCP 连接的通道, 就像标准 IO 中的 ServerSocket 一样。ServerSocketChannel 类在 java.nio. 阅读全文
posted @ 2018-11-18 12:56 binarylei 阅读(518) 评论(0) 推荐(0)
摘要: Java NIO系列教程(八) SocketChannel Java NIO 中的 SocketChannel 是一个连接到 TCP 网络套接字的通道。可以通过以下 2 种方式创建 SocketChannel: 打开一个 SocketChannel 并连接到互联网上的某台服务器。 一个新连接到达 S 阅读全文
posted @ 2018-11-18 12:46 binarylei 阅读(543) 评论(0) 推荐(0)
摘要: Java NIO系列教程(七) FileChannel Java NIO 中的 FileChannel 是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel 无法设置为非阻塞模式,它总是运行在阻塞模式下。 一、打开 FileChannel 在使用 FileChannel 之前, 阅读全文
posted @ 2018-11-18 12:34 binarylei 阅读(702) 评论(0) 推荐(0)
摘要: Java NIO系列教程(六) Selector Selector(选择器)是 Java NIO 中能够检测一到多个 NIO 通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个 channel,从而管理多个网络连接。 "深入浅出NIO Socket实现机制" 一、 阅读全文
posted @ 2018-11-18 12:26 binarylei 阅读(397) 评论(0) 推荐(0)
摘要: Java NIO系列教程(五) 通道之间的数据传输 在 Java NIO 中,如果两个通道中有一个是 FileChannel,那你可以直接将数据从一个 channel(译者注:channel 中文常译作通道)传输到另外一个 channel。 一、通道的基本操作 二、直接缓冲区拷贝文件 三、trans 阅读全文
posted @ 2018-11-18 12:10 binarylei 阅读(452) 评论(0) 推荐(0)
摘要: Java NIO系列教程(四) Scatter 和 Gather Java NIO 开始支持 scatter/gather,scatter/gather 用于描述从 Channel(译者注:Channel 在中文经常翻译为通道)中读取或者写入到 Channel 的操作。 从 Channel 中读取是 阅读全文
posted @ 2018-11-18 11:58 binarylei 阅读(359) 评论(0) 推荐(0)
摘要: Java NIO系列教程(三) Buffer Java NIO 中的 Buffer 用于和 NIO 通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成 NIO Buffer 对象,并提供了一组方法,用 阅读全文
posted @ 2018-11-18 11:41 binarylei 阅读(426) 评论(0) 推荐(0)
摘要: Java NIO系列教程(二) Channel Java NIO 的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。 通道可以异步地读写。 通道中的数据总是要先读到一个 Buffer,或者总是要从一个 Buffer 中写入。 正如上面所说,从通道读取数 阅读全文
posted @ 2018-11-18 11:29 binarylei 阅读(413) 评论(0) 推荐(0)
摘要: Java NIO系列教程(一) Java NIO 概述 Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如 阅读全文
posted @ 2018-11-18 11:27 binarylei 阅读(541) 评论(0) 推荐(0)

2018年11月14日

摘要: Zookeeper 源码(七)请求处理 以单机启动为例讲解 Zookeeper 是如何处理请求的。先回顾一下单机时的请求处理链。 请求的调用链如下: PrepRequestProcessor.processRequest() submittedRequests = new LinkedBlockin 阅读全文
posted @ 2018-11-14 21:05 binarylei 阅读(456) 评论(0) 推荐(0)
摘要: Zookeeper 源码(六)Leader Follower Observer 上一节介绍了 Leader 选举的全过程,本节讲解一下 Leader Follower Observer 服务器的三种角色。经过 Leader 选举后各服务器都能确定自己的角色,下一步就是初始化各自的角色。 先回顾一下【 阅读全文
posted @ 2018-11-14 08:24 binarylei 阅读(402) 评论(0) 推荐(0)

2018年11月13日

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

2018年11月12日

摘要: Zookeeper 源码(四)Zookeeper 服务端源码 Zookeeper 服务端的启动入口为 QuorumPeerMain 一、单机启动 __(1) 启动入口__【ZooKeeperServerMain】 __(2) 核心启动方法__【ZooKeeperServerMain】 __(3) Z 阅读全文
posted @ 2018-11-12 20:19 binarylei 阅读(440) 评论(0) 推荐(0)

2018年11月9日

摘要: Zookeeper 源码(三)Zookeeper 客户端源码 Zookeeper 客户端主要有以下几个重要的组件。客户端会话创建可以分为三个阶段:一是初始化阶段、二是会话创建阶段、三是响应处理阶段。 类 | 说明 | Zookeeper | Zookeeper 客户端入口 ClientWatchMa 阅读全文
posted @ 2018-11-09 07:29 binarylei 阅读(834) 评论(1) 推荐(0)

2018年11月8日

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

2018年11月6日

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

2018年11月5日

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

2018年11月4日

摘要: 分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab 本文介绍一致性算法: 2PC 到 3PC 到 Paxos 到 Raft 到 Zab __两类一致性算法(操作原子性与副本一致性)__ 协议用于保证属于多个数据分片上的操作的原子性。这些数据分片可能分布在不同 阅读全文
posted @ 2018-11-04 21:42 binarylei 阅读(3446) 评论(1) 推荐(0)
摘要: 分布式理论系列(一)从 ACID 到 CAP 到 BASE 一、ACID 1.1 事务的四个特征: __(1) Atomic(原子性)__ 事务必须是一个原子的操作序列单元,事务中包含的各项操作在一次执行过程中,要么全部执行成功,要么全部不执行,任何一项失败,整个事务回滚,只有全部都执行成功,整个事 阅读全文
posted @ 2018-11-04 11:09 binarylei 阅读(633) 评论(0) 推荐(0)

2018年10月22日

摘要: Java 日志体系 《java 日志和 SLF4J 随想》: 一、常用的日志组件 名称 | jar | 描述 | | log4j | log4j.jar | 早期常用日志组件 log4j2 | log4j.log4j api.log4j core.jar | apache 开发的一款 log4j 的 阅读全文
posted @ 2018-10-22 06:57 binarylei 阅读(751) 评论(0) 推荐(0)

2018年10月6日

摘要: Mybatis 实用篇(四)返回值类型 一、返回 List、Map List getUsers(); select from user; Map getUsers(); select from user; 二、返回指定的 key @MapKey("id") Map getUsers(); selec 阅读全文
posted @ 2018-10-06 11:37 binarylei 阅读(1665) 评论(0) 推荐(0)

2018年10月5日

摘要: Mybatis 实用篇(三)参数处理 sql 语句中的参数 parameterType 可以省略不写。 一、参数封装 1.1 单个参数处理 sql 中 {} 的值可以随意,mybatis 不做任何处理,eg: 1.2 多个参数处理 多个参数 mybatis 封装成 Map,默认参数的 key 为 p 阅读全文
posted @ 2018-10-05 22:08 binarylei 阅读(379) 评论(0) 推荐(0)
摘要: MyBatis 实用篇(二)配置文件 一、全局配置 全局配置: 二、mapper 配置 mapper 配置: 每天用心记录一点点。内容也许不重要,但习惯很重要! 阅读全文
posted @ 2018-10-05 21:20 binarylei 阅读(430) 评论(0) 推荐(0)
摘要: MyBatis 实用篇(一)入门 MyBatis() 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 MyBatis 消除了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 PO 阅读全文
posted @ 2018-10-05 20:59 binarylei 阅读(278) 评论(0) 推荐(0)

2018年9月1日

摘要: 并发编程目录(基于JDK 8) 1. 《深入理解Java虚拟机》 2. 《JAVA并发编程实践(Doug Lea)》 3. 《Java并发编程的艺术》 JAVA 线程基础 JAVA 内存模型(并发底层原理) "从Java视角理解系统结构(一)CPU上下文切换" "从Java视角理解系统结构(二)CP 阅读全文
posted @ 2018-09-01 10:31 binarylei 阅读(1769) 评论(0) 推荐(1)

2018年7月30日

摘要: Syslog syslog 服务器可以用作一个网络中的日志监控中心,rsyslog 是一个开源工具,被广泛用于 Linux 系统以通过 TCP/UDP 协议转发或接收日志消息。 rsyslog 作为标准的 syslog 守护进程,预装在了大多数的 Linux 发行版中。在客户端/服务器架构的配置下, 阅读全文
posted @ 2018-07-30 20:35 binarylei 阅读(2325) 评论(0) 推荐(0)

2018年7月15日

摘要: HBase 系列(三)HBase Shell ./hbase shell 进入 hbase 命令行 __(1) HBase 命令帮助__ help 查看 HBase 所有的命令 create 或 help 'create' 查看 create 的帮助命令 list 查看 HBase 所有的表 __( 阅读全文
posted @ 2018-07-15 22:10 binarylei 阅读(271) 评论(0) 推荐(0)
摘要: HBase 系列(二)安装部署 本节以 Hadoop 2.7.6,HBase 1.4.5 为例安装 HBase 环境。HBase 也有三种模式:本地模式、伪分布模式、分布模式。 一、环境准备 __(1) HBase 下载__ HBase 下载地址: __(2) SSH 服务__ service ss 阅读全文
posted @ 2018-07-15 19:15 binarylei 阅读(432) 评论(0) 推荐(0)
摘要: Hbase 系列(一)基本概念 HBase 是 Apache 旗下一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。利用 HBase 技术可在廉价 PC 服务器上搭建起大规模的存储化集群。使用 HBase 可以对数十亿级别的大数据进行实时性的高性能读写,在满足高性能的同时还保证了数据存取的原子性 阅读全文
posted @ 2018-07-15 10:42 binarylei 阅读(700) 评论(0) 推荐(0)

2018年7月14日

摘要: 01 Flume系列(一)安装配置 Flume() is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log d 阅读全文
posted @ 2018-07-14 07:58 binarylei 阅读(182) 评论(0) 推荐(0)

2018年7月10日

摘要: Redis 安装配制 redis 安装分为单机安装、伪集群安装、集群安装。 Redis 下载地址: Redis 在线测试工具: 一、redis 单机安装 下载,解压,编译: wget http://download.redis.io/releases/redis 4.0.9.tar.gz tar x 阅读全文
posted @ 2018-07-10 19:57 binarylei 阅读(245) 评论(0) 推荐(0)

2018年7月3日

摘要: JVM 系列()ClassLoader 在前面一节中,主要介绍了 Class 的装载过程,Class 的装载大体上可以分为加载类、连接类和初始化 3 个阶段。本小节将主要介绍绍 Java 语言中的 ClassLoader,类装载器。它主要工作在 Class 装载的加载阶段从系统外部获得 Class 阅读全文
posted @ 2018-07-03 07:58 binarylei 阅读(379) 评论(0) 推荐(0)

2018年7月2日

摘要: JVM 系列(一)类加载 类加载机制是指把 class 文件加载到内存,并对数据进行校验、解析和初始化,最终形成 JVM 可以直接使用的 Java 类型的过程。 ClassLoader 加载一个 class 文件到 JVM 时需要经过以下三个的步骤: 一、加载 将 class 文件字节码内容加载到内 阅读全文
posted @ 2018-07-02 21:33 binarylei 阅读(386) 评论(0) 推荐(0)

2018年7月1日

摘要: 02 JVM 系列(二)内存模型 一、JVM 内存组成 (1) PC 寄存器(线程私有) Java 虚拟机会为每个线程创建 PC 寄存器,在任意时刻,一个 java 线程总是在执行一个方法,这个方法被称为当前方法。 如果当前方法不是本地方法,PC 寄存器就会执行当前正在被执行的指令,如果是本地方法, 阅读全文
posted @ 2018-07-01 10:37 binarylei 阅读(158) 评论(0) 推荐(0)

2018年6月24日

摘要: Redis 安装配制 redis 安装分为单机安装、伪集群安装、集群安装。 Redis 下载地址: Redis 在线测试工具: 一、redis 单机安装 下载,解压,编译: wget http://download.redis.io/releases/redis 4.0.9.tar.gz tar x 阅读全文
posted @ 2018-06-24 21:27 binarylei 阅读(185) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页

导航