<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[有信仰的蜗牛]]></title><description><![CDATA[尊重每一行代码]]></description><link>https://blog.youkuaiyun.com/u014730165</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014730165]]></copyright><item><title><![CDATA[Hbase大批量数据迁移之BulkLoad]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/126622805</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/126622805</guid><author>u014730165</author><pubDate>Wed, 31 Aug 2022 15:09:46 +0800</pubDate><description><![CDATA[Hbase大批量数据迁移方案只BulkLoad]]></description><category></category></item><item><title><![CDATA[Tomcat极限性能测试(二)]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/118089801</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/118089801</guid><author>u014730165</author><pubDate>Tue, 22 Jun 2021 10:38:38 +0800</pubDate><description><![CDATA[基础环境
Linux操作系统，128G内存，40核心数CPU

测试代码
@RequestMapping(value = "/test/tomcat", method = RequestMethod.GET)
    @ResponseBody
    public void testTomcat() {
        int j = 0;
        for (int i = 0; i &lt; 2000; i++) {
            j = j + i;
        }
      ]]></description><category></category></item><item><title><![CDATA[Tomcat高性能测试（一）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/118072171</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/118072171</guid><author>u014730165</author><pubDate>Mon, 21 Jun 2021 09:18:21 +0800</pubDate><description><![CDATA[tomcat说明
tomcat参数说明：
tomcat核心参数： max-threads，accept-count，max-connections，connection-timeout


max-threads：
tomcat起动的最大线程数，即同时处理的任务个数，默认值为200


accept-count：
当accept队列中连接的个数达到acceptCount时，队列满，进来的请求一律被拒绝。默认值是100


max-connections
tomcat在任意时刻接收和处理的最大连接数。当Tom]]></description><category></category></item><item><title><![CDATA[Hbase大批量写的实践]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/116447147</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/116447147</guid><author>u014730165</author><pubDate>Thu, 06 May 2021 10:15:09 +0800</pubDate><description><![CDATA[概述
最近在做全量库手机号的MD5和SHA256，从130号段到199号段。差不多有140亿的数据量，其中md5是70亿，SHA256也是70亿。如何让这140亿的手机号批量写入到Hbase中去，达到效率最高不丢数据。且出现异常，可以自行修复。
设计思路
任务拆分
将70亿是手机号，按照号段进行拆分，平均1000w个手机号为一个任务单元。开启多线程去处理每个任务单元
预分区 + Rowkey设计
为了让Hbase可以大批量写入，同时解决数据热点问题。那么对Hbase进行rowkey和预分区设计必不可好。
我]]></description><category></category></item><item><title><![CDATA[误删除HDFS文件的终极恢复]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/106020978</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/106020978</guid><author>u014730165</author><pubDate>Sat, 09 May 2020 22:24:24 +0800</pubDate><description><![CDATA[概述
使用过HDFS的同学都知道，HDFS有垃圾回收站的功能，当你误删除文件的时候，HDFS会把文件存储到你所在用户的垃圾回收站中，想要恢复文件，只需要从垃圾回收站中找回，当然必须在垃圾回收站的指定日期中。这个是正常的操作。
下面我说一个不正常的操作，如果你的垃圾回收站的间隔日期设置的比较大，当你需要执行大量MR任务时候，就会存在很多垃圾日志存储到你的回收站中，这样就占用了系统大量的存储资。为了解决这个问题，于是想到了如果跳过回收站去删除文件不就可以了。接着执行了一下的指令：
hdfs dfs -rm -R]]></description><category></category></item><item><title><![CDATA[6、netty-4.1 源码编译]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/86509639</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/86509639</guid><author>u014730165</author><pubDate>Wed, 16 Jan 2019 17:12:13 +0800</pubDate><description><![CDATA[概述：
在分析Netty 源码之前，我们先编译下Netty源码。由于使用Apache的Maven仓库，这块对网络要求比较高，其次由于一些 Maven的插件和依赖可能存在某些私有的仓库中，所以在编译的过程中下载失败。但是对整体的编译影响不大，这块我们可以不予考虑。

1、Netty 源码编译流程
1.1、安装Maven
可以在本地电脑安装Maven仓库，这里的Maven要求3.0以上的版本即可，具体...]]></description><category></category></item><item><title><![CDATA[5、深入剖析Java NIO之Selector（多路复用器）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/85089085</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/85089085</guid><author>u014730165</author><pubDate>Wed, 19 Dec 2018 11:39:22 +0800</pubDate><description><![CDATA[章节概览
Netty源码分析章节概览

1、概述
关于多路复用的基本原理，在大白话分析BIO，NIO，AIO中简单的介绍了关于多路复用技术的理解。这章节，我们深入理解分析多路复用技术。以及JDK的部分源码作为参考。

2、多路复用快速认知
为了快速理解多路复用技术，我们以生活中的小案例进行说明。老张开大排档，刚刚起步的时候，客人比较少。接待，炒菜，上菜都是老张一个人负责。老张的手艺不错，炒出来的菜...]]></description><category></category></item><item><title><![CDATA[4、深入剖析Java Nio编程原理之Buffer]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/85061040</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/85061040</guid><author>u014730165</author><pubDate>Tue, 18 Dec 2018 15:04:50 +0800</pubDate><description><![CDATA[章节概览
Netty源码分析章节概览

1、概述
前面我们做了很多基础知识的准备，包括bio，nio，aio的理论和概念。BIO实现原理和通信原理知识的梳理等。下面我们深入的分析下NIO相关的知识。和Socket类和ServerSocket类相对应的，NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字接口实现。当然这两种新增的模式支持阻塞模式和非阻塞模...]]></description><category></category></item><item><title><![CDATA[3、Java网络编程之深入理解BIO原理和实现]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/85049811</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/85049811</guid><author>u014730165</author><pubDate>Mon, 17 Dec 2018 17:22:14 +0800</pubDate><description><![CDATA[章节概览
Netty源码分析章节概览

1、概述
关于网络方面的知识，这里不再赘述。可以看七层网络模型，TCP/IP协议，三次握手，四次挥手等网络编程方面的知识。本章节主要结合Java BIO 讲解BIO编程的原理和过程。
1.1、七层网络协议

1.2、 五层网络协议


2、socket发送和接受数据过程


发送过程：


应用程序调用系统调用，将数据发送给socket
socket检查数据...]]></description><category></category></item><item><title><![CDATA[2、大白话分析BIO，NIO，AIO]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/85044285</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/85044285</guid><author>u014730165</author><pubDate>Mon, 17 Dec 2018 14:02:05 +0800</pubDate><description><![CDATA[章节概览
Netty源码分析章节概览

1、概述
上一篇文章一分钟弄懂同步，异步，阻塞，非阻塞简单的了解了下同步，异步，阻塞，非阻塞的概念。那么在java的网络编程中，这些不同的IO状态又是怎么规划的呢。为了深入的理解这个问题。我们参考了《Netty 权威指南》 部分章节进行详细说明。深入理解不同的IO网络流的情况。同时进一步分析下BIO的原理。
2、Linux网络模型简介
Linux的内核将所有...]]></description><category></category></item><item><title><![CDATA[透视设计模式之装饰者模式]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84961766</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84961766</guid><author>u014730165</author><pubDate>Tue, 11 Dec 2018 22:18:10 +0800</pubDate><description><![CDATA[概述
说到装饰者设计模式，大家并不陌生。在jdk源码中的 IO框架大量使用了装饰者设计模式，所以学习好装饰者设计模式对我们理解java 的 io框架有很大的帮助。

1、定义
装饰者模式动态地将责任附加到对象上。若要扩展功能，装饰者提供了比继承更有弹性的替代方案。
1.2、装饰者模式UML图

1.3、 装饰者模式具备的特点

装饰者和被装饰对象有相同的超类型。
你可以用一个或多个装饰者包装一个对...]]></description><category></category></item><item><title><![CDATA[Netty源码分析章节概览]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84847004</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84847004</guid><author>u014730165</author><pubDate>Thu, 06 Dec 2018 10:31:39 +0800</pubDate><description><![CDATA[目录：

一分钟弄懂同步，异步，阻塞，非阻塞


]]></description><category></category></item><item><title><![CDATA[1、一分钟弄懂同步，异步，阻塞，非阻塞]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84847151</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84847151</guid><author>u014730165</author><pubDate>Thu, 06 Dec 2018 10:28:21 +0800</pubDate><description><![CDATA[1、概述
不管是什么开发语言，都会涉及到网络编程。在分布式计算、存储、微服务中，网络编程作为底层的核心支柱技术必不可少。以Java开发语言为例，我们经历了从BIO，NIO，AIO的不同阶段。但是每个阶段都是围绕着几个概念展开：同步，异步，阻塞，非阻塞。这边文章我们用浅显易懂的案例去说明这些概念。

2、场景描述
为了更好的讲解，我们以身边的订外卖为场景进行详细说明
2.1、场景一：同步
小明在努力...]]></description><category></category></item><item><title><![CDATA[Java多线程之CountDownLatch实现原理和源码分析（八）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84630203</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84630203</guid><author>u014730165</author><pubDate>Thu, 29 Nov 2018 15:37:57 +0800</pubDate><description><![CDATA[章节概览：

Java多线程之章节概览

1、概述
CountDownLatch是一个用来控制并发的很常见的工具，它允许一个或者多个线程等待其他的线程执行完其操作。比如我需要统计多篇文章中出现不同单词的数量，我们会为每篇文章分配一个线程进行统计，统计完成之后，会保存一个单词统计列表。等所有的统计线程都执行完成以后，对这些统计出来的结果用一个线程去汇总，这就可以使用CountDownLatch。

...]]></description><category></category></item><item><title><![CDATA[Java多线程之ReentrantReadWriteLock实现原理和源码分析（七）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84112391</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84112391</guid><author>u014730165</author><pubDate>Wed, 28 Nov 2018 16:37:58 +0800</pubDate><description><![CDATA[章节概览、

Java多线程之章节概览


]]></description><category></category></item><item><title><![CDATA[Java多线程之Future实现原理和源码分析（六）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/84065996</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/84065996</guid><author>u014730165</author><pubDate>Thu, 15 Nov 2018 18:02:48 +0800</pubDate><description><![CDATA[章节概览、

Java多线程之章节概览


]]></description><category></category></item><item><title><![CDATA[Java多线程之ThreadPoolExecutor实现原理和源码分析（五）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/83901559</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/83901559</guid><author>u014730165</author><pubDate>Wed, 14 Nov 2018 10:31:02 +0800</pubDate><description><![CDATA[章节概览、

Java多线程之章节概览


]]></description><category></category></item><item><title><![CDATA[Java多线程之Condition实现原理和源码分析（四）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/83861120</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/83861120</guid><author>u014730165</author><pubDate>Fri, 09 Nov 2018 16:56:16 +0800</pubDate><description><![CDATA[1、回顾

Java多线程之线程概述（一）
Java多线程之ReentrantLock实现原理和源码分析（二）
Java多线程之AQS（AbstractQueuedSynchronizer ）实现原理和源码分析（三）


...]]></description><category></category></item><item><title><![CDATA[Java多线程之章节概览]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/83861212</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/83861212</guid><author>u014730165</author><pubDate>Thu, 08 Nov 2018 14:53:40 +0800</pubDate><description><![CDATA[目录：

Java多线程之线程概述（一）
Java多线程之ReentrantLock实现原理和源码分析（二）
Java多线程之AQS（AbstractQueuedSynchronizer ）实现原理和源码分析（三）


...]]></description><category></category></item><item><title><![CDATA[Java多线程之AQS（AbstractQueuedSynchronizer ）实现原理和源码分析（三）]]></title><link>https://blog.youkuaiyun.com/u014730165/article/details/83791491</link><guid>https://blog.youkuaiyun.com/u014730165/article/details/83791491</guid><author>u014730165</author><pubDate>Thu, 08 Nov 2018 11:25:02 +0800</pubDate><description><![CDATA[HelloWorld

]]></description><category></category></item></channel></rss>