<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[豆腐的魔法屋]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u010556151</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010556151]]></copyright><item><title><![CDATA[阻塞队列-DelayQueue延迟队列使用入门及源码详解]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/113133138</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/113133138</guid><author>u010556151</author><pubDate>Mon, 25 Jan 2021 19:53:49 +0800</pubDate><description><![CDATA[简介

延迟元素的无限制BlockingQueu，其中元素只能在其延迟到期后才能获取。当元素的getDelay（TimeUnit.NANOSECONDS）方法返回小于或等于零的值时，就会发生过期。即使未到期的元素无法使用take或poll删除，它们也被视为普通元素。此队列不允许 null 元素。

方法说明

方法
			抛出异常
			返回值
			一直阻塞
			超时退出
		插入方法
			add
			offer
			put
			offer(time)
		移除方法
			remove
			p]]></description><category></category></item><item><title><![CDATA[HttpServletResponse和HttpServletRequest取值的2个坑]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/113050582</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/113050582</guid><author>u010556151</author><pubDate>Sat, 23 Jan 2021 15:30:34 +0800</pubDate><description><![CDATA[有时候，我们需要用拦截器对Request或者Response流里面的数据进行拦截，读取里面的一些信息，也许是作为日志检索，也许是做一些校验，但是当我们读取里请求或者回调的流数据后，会发现这些流数据在下游就无法再次被消费了，这里面是其实存在着两个潜在的坑。

坑一

Request的 getInputStream()、getReader()、getParameter()方法互斥，也就是使用了其中一个，再使用另外的两，是获取不到数据的。除了互斥外，getInputStream()和getReader()都只能使]]></description><category></category></item><item><title><![CDATA[MySQL：逻辑架构图解和InnoDB存储引擎详解]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/113002392</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/113002392</guid><author>u010556151</author><pubDate>Fri, 22 Jan 2021 21:27:36 +0800</pubDate><description><![CDATA[MySQL逻辑架构

1.逻辑架构图

基于下面的逻辑架构图，可以大致熟悉MySQL各个架构组件之间的协同工作关系。



很经典的C/S架构风格，即客户端/服务端模式。

2.分层描述

客户端连接
通常会进行连接池管理，连接用户权限认证，安全管理等操作。

可以通过如下命令查看连接配置信息：SHOW VARIABLES LIKE '%connect%';可以看到最大连接和每个连接占用的内存等相关配置。

核心功能
第二层架构封装MySQL一系列核心操作，查询解析、优化、缓存、内置函数、触发器、视图等，跨]]></description><category></category></item><item><title><![CDATA[DbUtils简化JDBC操作数据库]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/112999809</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/112999809</guid><author>u010556151</author><pubDate>Fri, 22 Jan 2021 20:54:50 +0800</pubDate><description><![CDATA[DbUtils概述

DbUtils是Apache提供的一个对JDBC轻量级封装的开源类库，使用它能够简化JDBC程序开发，同时不会影响程序性能。

DbUtils API介绍

DbUtils提供了org.apache.commons.dbutils.QueryRunner来操作数据库

public QueryRunner(DataSource ds)通过数据库来构造QueryRunner对象
	public int update(String sql, Object... params) throw.]]></description><category></category></item><item><title><![CDATA[Netty内存池泄漏问题]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/84677208</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/84677208</guid><author>u010556151</author><pubDate>Mon, 10 Dec 2018 16:20:28 +0800</pubDate><description><![CDATA[为了提升消息接收和发送性能，Netty针对ByteBuf的申请和释放采用池化技术，通过PooledByteBufAllocator可以创建基于内存池分配的ByteBuf对象，这样就避免了每次消息读写都申请和释放ByteBuf。由于ByteBuf涉及byte[]数组的创建和销毁，对于性能要求苛刻的系统而言，重用ByteBuf带来的性能收益是非常可观的。

内存池是一把双刃剑，如果使用不当，很容易带来...]]></description><category></category></item><item><title><![CDATA[如何诊断和解决CPU高度消耗(100%)的数据库问题]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/84677071</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/84677071</guid><author>u010556151</author><pubDate>Sat, 01 Dec 2018 18:33:42 +0800</pubDate><description><![CDATA[概述

很多时候我们的服务器可能会经历CPU消耗100%的性能问题.

排除系统的异常，这类问题通常都是因为系统中存在性能低下甚至存在错误的SQL语句, 消耗了大量的CPU所致.

本文通过一个案例就如何捕获这样的SQL给出一个通用的方法.

问题描述:系统CPU高度消耗,系统运行缓慢

1.首先通过Top命令查看



发现在进程列表里，存在两个高CPU耗用的Oracle进城，分别消耗了47.7...]]></description><category></category></item><item><title><![CDATA[ElasticSearch分词器比较及使用方法]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/84674755</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/84674755</guid><author>u010556151</author><pubDate>Sat, 01 Dec 2018 18:13:56 +0800</pubDate><description><![CDATA[ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎，基于 RESTful web 接口。Elasticsearch 是用 Java 开发的，并作为Apache许可条款下的开放源码发布，是当前流行的企业级搜索引擎。设计用于云计算中，能够达到实时搜索，稳定，可靠，快速，安装使用方便。

Elasticsearch中，内置了很多分词器（anal...]]></description><category></category></item><item><title><![CDATA[四种东西永远不要放到数据库里]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83590437</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83590437</guid><author>u010556151</author><pubDate>Wed, 31 Oct 2018 22:07:20 +0800</pubDate><description><![CDATA[改进你的系统的最好的方法是先避免做“蠢事”。我并不是说你或你开发的东西“蠢”，只是有些决定很容易被人们忽略掉其暗含的牵连，认识不到这样做对系统维护尤其是系统升级带来多大的麻烦。


图片
	二进制数据
	日志文件
	短生命期数据


图片和二进制数据

既然数据库支持BLOB类型的数据，把文件塞进BLOB字段里一定没有错了！？错，不是这样的！别的先不提，在很多数据库语言里，处理大字段都不是很容易。...]]></description><category></category></item><item><title><![CDATA[TCP和UDP的优缺点及区别]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83590131</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83590131</guid><author>u010556151</author><pubDate>Wed, 31 Oct 2018 20:46:00 +0800</pubDate><description><![CDATA[TCP优点： 可靠，稳定 TCP的可靠体现在TCP在传递数据之前，会有三次握手来建立连接，而且在数据传递时，有确认、窗口、重传、拥塞控制机制，在数据传完后，还会断开连接用来节约系统资源。

TCP的缺点： 慢，效率低，占用系统资源高，易被攻击 TCP在传递数据之前，要先建连接，这会消耗时间，而且在数据传递时，确认机制、重传机制、拥塞控制机制等都会消耗大量的时间，而且要在每台设备上维护所有的传输连接...]]></description><category></category></item><item><title><![CDATA[JVM内存结构、JVM GC的优化策略、实践优化总结]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83276172</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83276172</guid><author>u010556151</author><pubDate>Tue, 23 Oct 2018 19:50:10 +0800</pubDate><description><![CDATA[当Java程序性能达不到既定目标，且其他优化手段都已经穷尽时，通常需要调整垃圾回收器来进一步提高性能，称为GC优化。但GC算法复杂，影响GC性能的参数众多，且参数调整又依赖于应用各自的特点，这些因素很大程度上增加了GC优化的难度。即便如此，GC调优也不是无章可循，仍然有一些通用的思考方法。

优化前准备: 简单回顾JVM相关知识、介绍GC优化的一些通用策略。
	优化方法: 介绍调优的一般流程：明确...]]></description><category></category></item><item><title><![CDATA[RPC服务和HTTP服务对比]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83115848</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83115848</guid><author>u010556151</author><pubDate>Mon, 22 Oct 2018 15:58:25 +0800</pubDate><description><![CDATA[很长时间以来都没有怎么好好搞清楚RPC（即Remote Procedure Call，远程过程调用）和HTTP调用的区别，不都是写一个服务然后在客户端调用么？这里请允许我迷之一笑~Naive！本文简单地介绍一下两种形式的C/S架构，先说一下他们最本质的区别，就是RPC主要是基于TCP/IP协议的，而HTTP服务主要是基于HTTP协议的，我们都知道HTTP协议是在传输层协议TCP之上的，所以效率来看...]]></description><category></category></item><item><title><![CDATA[MySQL优化指南（简单指北）]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83112980</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83112980</guid><author>u010556151</author><pubDate>Wed, 17 Oct 2018 16:53:27 +0800</pubDate><description><![CDATA[当MySQL单表记录数过大时，增删改查性能都会急剧下降，所以我们本文会提供一些优化参考，大家可以参考以下步骤来优化：

一、单表优化

除非单表数据未来会一直不断上涨，否则不要一开始就考虑拆分，拆分会带来逻辑、部署、运维的各种复杂度。一般以整型值为主的表在千万级以下，字符串为主的表在五百万以下是没有太大问题的，而事实上很多时候MySQL单表的性能依然有不少优化空间，甚至能正常支撑千万级以上的数据量...]]></description><category></category></item><item><title><![CDATA[记一次MySQL迁移并从MySQL5.6升级到5.7后查询慢了几十倍的问题]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83111346</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83111346</guid><author>u010556151</author><pubDate>Wed, 17 Oct 2018 16:33:04 +0800</pubDate><description><![CDATA[起因
因为生产环境数据量越来越大，客户越来越多，项目功能也越来越多，项目本身也越来越多，导致之前的服务器内存、硬盘都已经渐渐的不够用了，当时出现了2种解决方案，增加服务器配置和新购服务器，但是就算是新增硬盘，也需要对数据库进行迁移，所以就采用了新购服务器的方案，并且因为之前用的是云盘，出现过IO占满的情况。所以对于新购的服务器采用了SSD硬盘，理论上速度会飞起来了，实际上我在新服务器上安装MySQ...]]></description><category></category></item><item><title><![CDATA[Java的new和newInstance的区别]]></title><link>https://blog.youkuaiyun.com/u010556151/article/details/83060964</link><guid>https://blog.youkuaiyun.com/u010556151/article/details/83060964</guid><author>u010556151</author><pubDate>Wed, 17 Oct 2018 15:46:49 +0800</pubDate><description><![CDATA[问：初始化一个类，生成一个实例的时候；newInstance() 和 new 有什么区别?
答：用newInstance与用new是区别的，区别在于创建对象的方式不一样，前者是使用类加载机制，那么为什么会有两种创建对象方式?这个就要从可伸缩、可扩展，可重用等软件思想上解释了。

下面一个简单的说明演示，要结果可以直接看最后。

***********************************...]]></description><category></category></item></channel></rss>