<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AscendentJava的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AscendentJava</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AscendentJava]]></copyright><item><title><![CDATA[AKF扩展立方体]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/83246632</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/83246632</guid><author>AscendentJava</author><pubDate>Sun, 21 Oct 2018 22:47:12 +0800</pubDate><description><![CDATA[本文节选自《高扩展性网站的50条原则》

如何通过克隆和复制、拆分功能或服务以及把相似的数据集分布到存储和应用系统中，从而扩展数据库和服务。只要利用本文介绍的这三种方法，几乎任何系统或数据库都可以无限扩展。这里用方法这个词有点牵强，但是根据我们为上百家公司、几千个数据库和系统服务的经验来看，这些技术还没有失败过。为了使这三种扩展方法更形象，我们采用AKF扩展立方，它是我们为了展示这三种扩展系统的方...]]></description><category></category></item><item><title><![CDATA[四种引用类型：强引用、软引用、弱引用、虚引用]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/83109853</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/83109853</guid><author>AscendentJava</author><pubDate>Wed, 17 Oct 2018 17:31:18 +0800</pubDate><description><![CDATA[java中除了基本数据类型的变量（int、long等），剩下的都是引用类型的变量，一共有四种不同的引用类型。

一、强引用（Strong Reference）

强引用就是最常见的对某个对象的引用，如下代码变量o就是对所创建的Object对象的一个强引用。


Object o = new Object();

存在强引用的对象，不会被垃圾回收，即便发生了OutOfMemoryError，我们来看...]]></description><category></category></item><item><title><![CDATA[MongoDB分片>集群组件>分片]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/54923307</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/54923307</guid><author>AscendentJava</author><pubDate>Wed, 08 Feb 2017 11:05:53 +0800</pubDate><description><![CDATA[主分片 
分片状态 
分片集群的安全一个分片包含分片集群中分片数据的一部分。同时，集群中的所有分片拥有整个集群的全部的数据。分片应该被部署为复制集模式，以提供数据冗余和高可用性。用户，客户端，或者应用程序只有在执行本地管理或者维护操作时才能直连分片（否则应该连接到mongos路由服务）。在一个单独的分片上执行查询操作只会返回数据的一部分。应该连接到mongos来执行集群级别的操作，包括读或写操作。]]></description><category></category></item><item><title><![CDATA[MongoDB分片>集群组件]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/54705927</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/54705927</guid><author>AscendentJava</author><pubDate>Tue, 24 Jan 2017 10:54:03 +0800</pubDate><description><![CDATA[本页导读
生产环境配置
开发环境配置
“` 
一个MongoDB的分片集群由以下部分组成：分片：每个分片包含分片数据的一个子集，每个分片可以被部署为一个副本集（replica set）。 
mongos：mongos扮演了查询路由器的角色，提供客户端应用程序和分片集群之间的接口。 
配置服务器：配置服务器存储集群的元数据和配置设定。在Mongo3.4版本，配置服务器必须部署为一个副本集 (CSRS)]]></description><category></category></item><item><title><![CDATA[MongoDB分片]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/54629757</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/54629757</guid><author>AscendentJava</author><pubDate>Fri, 20 Jan 2017 10:55:01 +0800</pubDate><description><![CDATA[分片集群 
分片键 
数据块 
分片的优势 
分片前的考虑 
分片集合与非分片集合 
连接分片集群 
分片策略 
分片集群中的分片键值空间 
分片的字符比较排序规则 
其它资源分片是一种将数据分散存储到多台机器的方法，MongoDB使用分片来支持大数据集和高吞吐量的应用场景。具有大数据集的数据库系统或高吞吐量的应用程序对单机的处理能力提出挑战。例如，高速查询会耗尽单台服务器的cpu处理能力。工作集的]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（十二） Java NIO与IO]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018275</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018275</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:57:55 +0800</pubDate><description><![CDATA[原文地址：http://tutorials.jenkov.com/java-nio/nio-vs-io.html

作者：Jakob Jenkov   译者：郭蕾    校对：方腾飞

当学习了Java NIO和IO的API后，一个问题马上涌入脑海：

我应该何时使用IO，何时使用NIO呢？在本文中，我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景，以及它们如何影响您的代]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（十一） Pipe]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018259</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018259</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:57:28 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：黄忠       校对：丁一

Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道，从source通道读取。

这里是Pipe原理的图示：





创建管道

通过Pipe.open()方法打开管道。例如：
Pipe pipe = ]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（十） Java NIO DatagramChannel]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018249</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018249</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:56:29 +0800</pubDate><description><![CDATA[原文链接    作者：Jakob Jenkov    译者：郑玉婷     校对：丁一

Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议，所以不能像其它通道那样读取和写入。它发送和接收的是数据包。



打开 DatagramChannel

下面是 DatagramChannel 的打开方式：






]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（九） ServerSocketChannel]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018243</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018243</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:56:03 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：郑玉婷      校对：丁一

Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。


这里有个例子：
ServerSocketChanne]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（八） SocketChannel]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018237</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018237</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:55:05 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：郑玉婷      校对：丁一

Java NIO中的SocketChannel是一个连接到TCP网络套接字的通道。可以通过以下2种方式创建SocketChannel：

打开一个SocketChannel并连接到互联网上的某台服务器。一个新连接到达ServerSocketChannel时，会创建一个SocketChannel。]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（七） FileChannel]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018223</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018223</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:54:22 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：周泰      校对：丁一

Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。

FileChannel无法设置为非阻塞模式，它总是运行在阻塞模式下。



打开FileChannel

在使用FileChannel之前，必须先打开它。但是，我们无法直接打开一个FileC]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（六） Selector]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018211</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018211</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:53:13 +0800</pubDate><description><![CDATA[原文链接 作者：Jakob Jenkov 译者：浪迹v 校对：丁一

Selector（选择器）是Java NIO中能够检测一到多个NIO通道，并能够知晓通道是否为诸如读写事件做好准备的组件。这样，一个单独的线程可以管理多个channel，从而管理多个网络连接。

下面是本文所涉及到的主题列表：

为什么使用Selector?Selector的创建向Selector注册通道Select]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（五） 通道之间的数据传输]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018189</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018189</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:52:38 +0800</pubDate><description><![CDATA[原文地址：http://tutorials.jenkov.com/java-nio/scatter-gather.html

作者：Jakob Jenkov   译者：郭蕾     校对：周泰

在Java NIO中，如果两个通道中有一个是FileChannel，那你可以直接将数据从一个channel（译者注：channel中文常译作通道）传输到另外一个channel。

transf]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（四） Scatter/Gather]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018169</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018169</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:51:34 +0800</pubDate><description><![CDATA[原文地址：http://tutorials.jenkov.com/java-nio/scatter-gather.html

作者：Jakob Jenkov   译者：郭蕾   


Java NIO开始支持scatter/gather，scatter/gather用于描述从Channel（译者注：Channel在中文经常翻译为通道）中读取或者写入到Channel的操作。
分散（sca]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（三） Buffer]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018157</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018157</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:50:53 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：airu     校对：丁一

Java NIO中的Buffer用于和NIO通道进行交互。如你所知，数据是从通道读入缓冲区，从缓冲区写入到通道中的。

缓冲区本质上是一块可以写入数据，然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象，并提供了一组方法，用来方便的访问该块内存。

下面是NIO Buffe]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（二） Channel]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018133</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018133</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:49:55 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：airu     校对：丁一

Java NIO的通道类似流，但又有些不同：

既可以从通道中读取数据，又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer，或者总是要从一个Buffer中写入。

正如上面所说，从通道读取数据到缓冲区，从缓冲区写入数据到通道。如下图所示：]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程（一） Java NIO 概述]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018095</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018095</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:46:39 +0800</pubDate><description><![CDATA[原文链接     作者：Jakob Jenkov     译者：airu     校对：丁一

Java NIO 由以下几个核心部分组成：

ChannelsBuffersSelectors

虽然Java NIO 中除此之外还有很多类和组件，但在我看来，Channel，Buffer 和 Selector 构成了核心的API。其它组件，如Pipe和FileLock，只不过是与三个核心组]]></description><category></category></item><item><title><![CDATA[Java NIO系列教程]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/44018043</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/44018043</guid><author>AscendentJava</author><pubDate>Mon, 02 Mar 2015 14:41:59 +0800</pubDate><description><![CDATA[原文地址：http://tutorials.jenkov.com/java-nio/index.html

作者：Jakob Jenkov   译者：郭蕾    校对：方腾飞

Java NIO(New IO)是一个可以替代标准Java IO API的IO API（从Java 1.4开始)，Java NIO提供了与标准IO不同的IO工作方式。

Java NIO: Channels a]]></description><category></category></item><item><title><![CDATA[自注1：DNS域名解析过程]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/29356207</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/29356207</guid><author>AscendentJava</author><pubDate>Sun, 08 Jun 2014 11:09:44 +0800</pubDate><description><![CDATA[DNS域名解析过程]]></description><category></category></item><item><title><![CDATA[网站的伸缩性架构]]></title><link>https://blog.youkuaiyun.com/AscendentJava/article/details/28324241</link><guid>https://blog.youkuaiyun.com/AscendentJava/article/details/28324241</guid><author>AscendentJava</author><pubDate>Tue, 03 Jun 2014 23:24:18 +0800</pubDate><description><![CDATA[书籍系列开篇]]></description><category></category></item></channel></rss>