<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Array7的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Array7</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Array7]]></copyright><item><title><![CDATA[Why Reflection is slowly?（Trail: The Reflection API）]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47269405</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47269405</guid><author>Array7</author><pubDate>Tue, 04 Aug 2015 03:02:00 +0800</pubDate><description><![CDATA[Uses of ReflectionReflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine. This is a relatively a]]></description><category></category></item><item><title><![CDATA[NoSuchMethodException问题总结]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47152799</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47152799</guid><author>Array7</author><pubDate>Thu, 30 Jul 2015 16:54:15 +0800</pubDate><description><![CDATA[1、编译异常，这个很容易发现并解决；
method真的没有
替换jar包没有clean project。
2、编译正常，运行报错这是一个遇到之后让人纳闷的异常，脑袋不转弯的时候真的容易被卡住。这时只要去编译目录下：
1）查看下相应的jar包是否被引入；如果没有，咋把jar包拷入相应的目录；pom项目的话则检查下依赖的scope是不是provided等不随项目一起发布的配置。
2）检查下对应的jar包]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记十四：适配器模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47095979</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47095979</guid><author>Array7</author><pubDate>Tue, 28 Jul 2015 02:08:00 +0800</pubDate><description><![CDATA[介绍适配器（ADPATER）模式，也叫包装器（WRAPPER）模式，属于类对象结构型模式。是为了在现有功能类的基础上为客户提供匹配的接口。适配器有两种方式：对象适配器模式和类适配器模式，本文主要讲前者，后者会有单独的说明，因为个人不是很喜欢这种方式的调用。意图：将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容 
而不能一起工作的那些类可以一起工作（本段摘自《Go]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记十三：模板方法模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47079769</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47079769</guid><author>Array7</author><pubDate>Mon, 27 Jul 2015 09:01:49 +0800</pubDate><description><![CDATA[设计模式学习笔记十三：模板方法模式介绍模板方法（TEMPLATE METHOD）模式，属于类行为型模式， 
意图：定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 Te m p l a t e M e t h o d使得子类 
可以不改变一个算法的结构即可重定义该算法的某些特定步骤。（本段摘自《GoF设计模式》 5.10）。 
模板方法有几个要素： 
+ 算法骨架：模板执行方法，防止子类更改流]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记十二：访问者模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47079747</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47079747</guid><author>Array7</author><pubDate>Mon, 27 Jul 2015 08:58:28 +0800</pubDate><description><![CDATA[设计模式学习笔记十二：访问者模式介绍访问者（visitor）模式，属于对象行为型模式，它实现了结构与行为的解耦。 
意图：表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。（本段摘自《GoF设计模式》 5.11）适用场景访问者模式适合对象的结构稳定，行为变动频繁的情况。反之，结构变动频繁的场景不适合使用次模式。在后面的实现中可以很容易的证实这一]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记十一：观察者模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47079711</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47079711</guid><author>Array7</author><pubDate>Mon, 27 Jul 2015 08:54:15 +0800</pubDate><description><![CDATA[设计模式学习笔记十一：观察者模式介绍观察者（observer）模式也叫发布-订阅模式，实现了观察者和被观察者的解耦操作，观察者可以根据自身需求选择关注哪些主题和取消关注哪些主题，当主题发生变化的时候会轮询通知观察者，所以主题和观察者之间是一对多的关系。典型应用
MQ
AWT事件监听
NIO多路复用
……
UML结构图：代码实现：1.主题接口package com.array7.observer;pu]]></description><category></category></item><item><title><![CDATA[【亲述】Uber容错设计与多机房容灾方案 - 高可用架构系列]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/47011719</link><guid>https://blog.youkuaiyun.com/Array7/article/details/47011719</guid><author>Array7</author><pubDate>Wed, 22 Jul 2015 23:03:04 +0800</pubDate><description><![CDATA[赵磊在7月21号的全球架构师峰会深圳站上，做了主题演讲:Uber高可用消息系统构建，对于这个热门主题，高可用架构群展开了热议，大家对分布式系统中的各种错误处理非常感兴趣。Tim Yang特邀赵磊通过微信群，在大洋彼岸的硅谷给大家进一步分享。]]></description><category></category></item><item><title><![CDATA[Linux 动态监听进程shell]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46973653</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46973653</guid><author>Array7</author><pubDate>Mon, 20 Jul 2015 20:42:21 +0800</pubDate><description><![CDATA[背景
  前几天在研究线程的时候，看到一句话说java里的线程Thread.run都会在Linux中fork一个的轻量级线程，于是就想验证一下（笔者的机器是Linux的）。当时用top命令的时候，进程总是跳来跳去的，看起来比较麻烦，有个工具叫htop，支持filter，感觉也没那么直观。根据在网上查到的资料和man top，整理出了两条语句：
top -p pgrep java | tr "\\n"]]></description><category></category></item><item><title><![CDATA[玩具:加减法验证码（1+?=4）]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46919749</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46919749</guid><author>Array7</author><pubDate>Fri, 17 Jul 2015 00:18:06 +0800</pubDate><description><![CDATA[遇到个小需求要写一个验证码功能，就是加减法，囧，感觉挺好玩的就顺手写了。代码简单的囧……纯属自娱自乐，凑数，Orz~~ 
生成图片的部分没写，逻辑都差不多。主要注意：干扰线，噪点，变形，背景色就OK。我用的现成的代码，就不发了。/**
 * 加减法验证码
 */
public class VerifyCodeUtil {
    private final static Map<Integer, S]]></description><category></category></item><item><title><![CDATA[京东云、新浪微博等专家畅谈Docker未来格局：开放与竞争（下）]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46870131</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46870131</guid><author>Array7</author><pubDate>Tue, 14 Jul 2015 00:26:09 +0800</pubDate><description><![CDATA[在上次推送的文章中（传送门），田琪老师分享了他的DockerCon 2015峰会见闻。在“QCon高可用架构群”中，田老师分享之后，几位专家也参与了讨论。他们是：
  
  闫国旗：京东资深架构师，京东架构技术委员会成员，负责京东云基础服务建设，也参加了DockerCon 2015峰会。
  王渊命：技术极客，协作IM服务@Grouk联合创始人，也是Docker深度实践者。
  陈飞：微博资深架构师]]></description><category></category></item><item><title><![CDATA[京东云、新浪微博等专家畅谈Docker未来格局：开放与竞争（上）]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46870071</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46870071</guid><author>Array7</author><pubDate>Tue, 14 Jul 2015 00:11:23 +0800</pubDate><description><![CDATA[田琪(@摇摆巴赫)是京东资深架构师，10年互联网行业从业经验，之前曾分别就职于搜狐、新浪、腾讯等公司，目前负责京东云主机及云数据库的架构及研发工作，对云计算基础技术有深刻理解。
  
  DockerCon 2015于6月22-23号在美国旧金山落下帷幕，这个由Docker公司发起的Docker领域峰会，包括Docker公司CEO在内的多位领域专家发表了精彩演讲。峰会展示着Docker领域的成就，也]]></description><category></category></item><item><title><![CDATA[Memcached和Redis对比和适用场景]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46598161</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46598161</guid><author>Array7</author><pubDate>Mon, 13 Jul 2015 02:06:59 +0800</pubDate><description><![CDATA[关于memcached和redis的使用场景，根据大神们的讨论和我在网上查到的资料，总结一下。两者对比：1、redis提供数据持久化功能，memcached无持久化。 
2、redis的数据结构比memcached要丰富，能完成场景以外的事情； 
3、memcached的单个key限制在250B，value限制在1MB；redis的K、V都为512MB; 
4、memcached数据回收基于LRU算]]></description><category></category></item><item><title><![CDATA[三次握手，四次挥手及半关闭]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46842857</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46842857</guid><author>Array7</author><pubDate>Sat, 11 Jul 2015 16:49:31 +0800</pubDate><description><![CDATA[最近在学习TCP/IP协议，通过看书和实践终于理解了三次握手和四次挥手，也终于不用总去查什么是三次握手什么是四次挥手了～
下图是在本子上画的，Linux系统下实在没找到好用的画图工具，SYN和ACK是根据telnet登入和退出的抓包记录记录的，抓包工具是使用tcpdump，client是我的本机，server是我的虚拟机，使用桥接网络通信方式。
抓包命令：
> tcpdump -S port]]></description><category></category></item><item><title><![CDATA[记一次死锁问题的处理]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46823257</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46823257</guid><author>Array7</author><pubDate>Fri, 10 Jul 2015 00:13:08 +0800</pubDate><description><![CDATA[总想写点技术积累。因为最近工作比较忙，一忙一懒，找足了借口 :(
今天想简单记录一下前段时间发现在做数据清洗时遇到的问题，在处理这件事情上，感受到了许多。
大概需求是这样的：有两组数据库，每组都是分库分表的结构。从两组库中查出数据，根据规则再进行入库、清除缓存、发送消息队列。数据有几千万。
遇到这样的问题，首先想到的就是在保证数据准确的情况下做并行处理，其次想到的是尽量降低数据库的压力，再次]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记十：构造器模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46674561</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46674561</guid><author>Array7</author><pubDate>Sun, 28 Jun 2015 22:13:44 +0800</pubDate><description><![CDATA[构造器（Builder）模式，也叫生成器模式，属于创建型模式之一。GoF设计模式一书描述此模式的意图是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。适用场景：创建复杂对象，并且该对象的算法可以独立出来进行复用，构造过程必须允许被构造的对象有不同的表示。
本例子代码基于GoF Builder设计模式场景的Java实现，因为在阅读别人的构造器模式示例代码的时候发现都描述的]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记九：原型模式（和深浅复制）]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46666099</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46666099</guid><author>Array7</author><pubDate>Sun, 28 Jun 2015 00:10:40 +0800</pubDate><description><![CDATA[原型设计模式是一个比较简单的设计模式，创建型模式的一种。主要作用是实现对象的自我复制。在实现上大多采用实现JDK中的Cloneable接口。适用场景同它的作用，也就是需要进行对象拷贝的情况。
        在属性拷贝过程中，本例子实现了两种方式：浅复制和深复制。代码如下：


package com.array7.prototype;

import java.io.*;

/**
 *]]></description><category></category></item><item><title><![CDATA[设计模式学习笔记八：享元模式]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46653241</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46653241</guid><author>Array7</author><pubDate>Fri, 26 Jun 2015 19:21:39 +0800</pubDate><description><![CDATA[享元模式，又叫蝇量模式（有点恶心）：适用于是小类的复用，多与工厂模式配合使用。
上代码：
package com.array7.flyweight;

import java.util.HashMap;

public class Run {
	public static void main(String[] args) {
		// 调用
		FruitFactory factory = n]]></description><category></category></item><item><title><![CDATA[互联网秒杀设计]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46477423</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46477423</guid><author>Array7</author><pubDate>Sat, 13 Jun 2015 00:46:00 +0800</pubDate><description><![CDATA[吕毅，百度公司资深研发工程师，传统的LAMP人。 
  2012年从新浪平台架构部加入百度移动服务事业群组（MSG）手机百度产品线。在百度期间，随着产品线发展和业务上QPS增长，架构设计方面略有所获，对移动端业务、优化有独特的理解和方法。
分享内容抢先看：本次分享介绍了手机百度对抢购业务的设计实实线，主要包含如下主题： 
1. 抢购业务介绍 
2. 具体抢购项目中的设计 
    2.1. 如何解耦]]></description><category></category></item><item><title><![CDATA[生产者消费者模式实现]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46440703</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46440703</guid><author>Array7</author><pubDate>Wed, 10 Jun 2015 13:21:00 +0800</pubDate><description><![CDATA[生产者与消费者解耦，典型应用：MQ。不多解释，code talking：


调用模块：
package com.array7.ds.pc;

import java.util.concurrent.BlockingDeque;
import java.util.concurrent.LinkedBlockingDeque;

public class Run {
	public stat]]></description><category></category></item><item><title><![CDATA[Ping CAP CTO、Codis作者谈redis分布式解决方案和分布式KV存储]]></title><link>https://blog.youkuaiyun.com/Array7/article/details/46390045</link><guid>https://blog.youkuaiyun.com/Array7/article/details/46390045</guid><author>Array7</author><pubDate>Sat, 06 Jun 2015 17:26:01 +0800</pubDate><description><![CDATA[此文根据【QCON高可用架构群】分享内容，由群内【编辑组】志愿整理，转发请注明出处。
  苏东旭，Ping CAP CTO，Codis作者 
  开源项目Codis的co-author黄东旭，之前在豌豆荚从事infrastructure相关的工作。现在在创业公司PingCAP。
本次分享的内容主要包括五个大部分：
Redis、RedisCluster和Codis;
我们更爱一致性;
Codis在生产]]></description><category></category></item></channel></rss>