自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小程故事多的博客

一名工作十多年的技术老兵,永保初心!合著作品《深入分布式缓存--从原理到实践》

  • 博客(207)
  • 收藏
  • 关注

原创 【转】什么是Reactor模式,或者叫反应器模式

Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些。通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或者叫召唤兽。 并发系统常使用reactor模式,代替常用的多线程的处理方式,节省系统的资源,提高系统的吞吐量。 先用比较直观的方式来介绍一下这种方式的优点,通过和常用的多线程方式比较一

2016-07-06 15:20:30 391

原创 【经验总结】NIO常见的陷阱解析

NIO编程很容易吗?不容易吗?很容易吗?不容易吗?……有些陷阱你需要知道 陷阱1:处理事件忘记移除key在select返回值大于0的情况下,循环处理Selector.selectedKeys 集合,每处理一个必须移除Iterator it=set.iterator();While(it.hasNext()){ SelectionKey key=it.nex

2016-07-06 15:20:23 580

原创 基于Spring_Batch大数据并行处理文章分享--建议大家多看看

请见附件!!! 以下链接是我以前写的一个简单例子,也能给大家提供帮助。http://flychao88.iteye.com/blog/1990520   另外同时也推荐给大家看看Apache chain责任链工具,这个非常好用,效率也较高。 基于Spring_Batch的大数据量并行处

2016-07-06 15:20:14 760

原创 开发者必备的 Chrome 扩展

Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifenchChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-plus

2016-07-06 15:20:07 442

原创 32位jvm还是64位jvm?

在早期,JVM只有32位的,众所周知,32位有4G的内存限制。需要注意的是,32位jvm的堆内存实际可设的大小还受操作系统的限制。Hotspot VM,在Windows下,最大的堆内存大约在1.5G左右;在基于较新的linux kernel的Linux系统下,其限制在2.5到3G之间,在早前的linux kernel下,大约在2G左右;在Solaris下,为3.3G左右。64位的hotspot V

2016-07-06 15:20:00 2409 2

原创 【转】使用Netty实现多路复用的client

Netty只提供的异步传输数据的方式,但是并没有实现多路复用的client。一个分布式的客户端代码基本是这个样子的:?1234public Response sent(final Request request) {    channel.writeAndFlush(request);         return clien

2016-07-06 15:19:52 2394

原创 JAVA 线程池源码分析

java5之后为我们提供了线程池,只需要使用API,不用去考虑线程池里特殊的处理机制。Java5的线程池分好多种:固定尺寸的线程池、可变尺寸连接池等。常用的是ThreadPoolExecutor,它的继承关系如下: 下面详细说明一下自定义线程的使用:TreadPoolExecutor的常用构造方法如下:public ThreadPoolExecutor(int corePo

2016-07-06 15:19:45 500

原创 Redis分布式中间件TwemProxy

twemproxy,也叫nutcraker。是一个twtter开源的一个redis和memcache代理服务器。 redis作为一个高效的缓存服务器,非常具有应用价值。但是当使用比较多的时候,就希望可以通过某种方式 统一进行管理。避免每个应用每个客户端管理连接的松散性。同时在一定程度上变得可以控制。 搜索了不少的开源代理项目,知乎实现的python分片客户端。node的代理中间层,还有各种rest

2016-07-06 15:19:38 1319

原创 -淘宝HSF服务框源码解析

最近在学习淘宝HSF框架,目前已经看完60%左右的源码,为了与大家共享信息,先分享我看完的这部分源码。废话少说,来吧!!!! 一、背景      随着网站访问量增加,仅仅靠增加机器已不能满足系统的要求,于是需要对应用系统进行垂直拆分和水平拆分。在拆分之后,各个被拆分的模块如何通信?如何保证性能?如何保证各个应用都以同样的方式交互?这就需要一种负责各个拆分的模块间通信的高性能服务框架(H

2016-07-06 15:19:31 1418 2

原创 如何用Java编写一段代码引发内存泄露

本文来自StackOverflow问答网站的一个热门讨论:如何用Java编写一段会发生内存泄露的代码。 Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码。这个问题我一点思路都没有,好囧。A1:通过以下步骤可以很容易产生内存泄露(程序代码不能访问到某些对象,但是它们仍然保存在内存中)         1、应用程序创建一个长时间运行的线程(或者使用线程池,会更快

2016-07-06 15:19:24 1040

原创 【转】SharedHashMap是更低延迟无GC暂停的Map实现

SharedHashMap是开源工具OpenHFT一个子项目,SharedHashMap提供ConcurrentHashMap更低延迟无JVM的GC暂停的实现。两个特点是:1.所有元素都保存在Java heap之外,这样就不受GC影响,没有GC暂停。2.所有元素都在一个共享内存区域,对所有进程都是可视的。SharedHashMap采取的是"no-copy"模型,能够提供off-heap堆内存之外内

2016-07-06 15:19:16 512

原创 Hadoop RPC机制

RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。Hadoop底层的交互都是通过 rpc进行的。例如:datanode和namenode 、tasktracker和jobtracker、secondary namenode和namenode之间的通信都是通过rpc实现的。下面是rpc交

2016-07-06 15:19:07 344

原创 【转】AbstractQueuedSynchronizer的介绍和原理分析

简介提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵必须确保原子性,因此子类对于状态的把握,需要使用这个同步器

2016-07-06 15:18:58 323

原创 java UncaughtExceptionHandler 处理线程意外中止

Thread的run方法是不抛出任何检查型异常(checked exception)的,但是它自身却可能因为一个异常而被终止,导致这个线程的终结。最麻烦的是,在线程中抛出的异常即使使用try...catch也无法截获,因此可能导致一些问题出现,比如异常的时候无法回收一些系统资源,或者没有关闭当前的连接等等。       JDK5.0之前,不能为单独的Thread设置UncaughtExceptio

2016-07-06 15:18:48 484

原创 hbase源码系列(一)Balancer 负载均衡

备注:              我一个哥们最近一直在看Hbase源码,前几天他针对Hbase写了源码分析体会,我本来也是要写的,但是看到他写的比较好,所以我决定引用他的4篇系列文章到我们博客中。原文如下地址:http://www.cnblogs.com/cenyuhai/p/3650943.html 看源码很久了,终于开始动手写博客了,为什么是先写负载均衡呢,因为一个室友入职

2016-07-06 15:18:41 579

原创 本地调试Hbase源码详解

由于工作关系,近期需要对Hbase源码有一定了解,我想能够在本地调试hbase,于是乎下载源码开始干活,废话不多讲说干就干!       一、准备工作                本地环境:Windows7,Cygwin和Maven3。          IDE:IntelliJ IDEA12.1.4               HBase版本:0.94.16      

2016-07-06 15:18:34 1439

原创 Hadoop添加节点datanode

1.部署hadoop和普通的datanode一样。安装jdk,ssh2.修改host和普通的datanode一样。添加namenode的ip3.修改namenode的配置文件conf/slaves添加新增节点的ip或host4.在新节点的机器上,启动服务[root@slave-004 hadoop]# ./bin/hadoop-daemon.sh start

2016-07-06 15:18:27 350

原创 linux加载大硬盘

lvcreate --name lv_data -l 100%FREE vg_root::::in /dev/fstab   vi /etc/fstab /dev/mapper/vg_root-lv_data     /hbase          ext4    defaults        1 1mkfs -t ext4 /dev/mapper/vg_root-lv_datamk

2016-07-06 15:18:19 219

原创 Hbase安装常见问题总结

最近这段时间因为工作需要安装了hadoop+hbase集群,在安装的过程中总结了以下一些常见的问题,供大家参考。 一、问题1ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed. 1.       删除/tmp下hadoop 有关系的东西目录及文

2016-07-06 15:18:13 733

原创 Hbase shell常用命令

HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:名称命令表达式创建表create '表名称', '列名称1','列名称2','列名称N'添加记录      put '表名称', '行名称', '列名称:', '值'查看记录get '表名称',

2016-07-06 15:18:04 411

原创 关于<mvc:default-servlet-handler/>报错问题的解决

在spring mvc中引用后启动程序异常如下: ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failedorg.springframework.beans.factory.BeanCreationException:Error creating bean wit

2016-07-06 15:17:56 1627

原创 【转】细数JDK里的设计模式

原文出处: javacodegeeks   译文出处: deepinmind结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList()javax.swing.JTable(TableModel)java.io.InputStreamReader(InputStream)java.io.OutputStreamWrite

2016-07-06 15:17:49 233

原创 【转】通过《淘宝这十年》总结的脑图

通过读淘宝这十年总结的脑图  大小: 687.2 KB 查看图片附件

2016-07-06 15:17:42 983

原创 一张图足已明白JAVA设计模式

好好看一下这张图,会有一些收获!  大小: 351.5 KB 查看图片附件

2016-07-06 15:17:35 418

原创 JAVA并发类名图

这张图值得收藏! 大小: 138.6 KB 查看图片附件

2016-07-06 15:17:28 683

原创 【转】Hbase性能优化四个要点

1 hbase.hregion.max.filesize应该设置多少合适  默认值:256M  说明:Maximum HStoreFile size. If any one of a column families' HStoreFiles has grown to exceed this value, the hosting HRegion is split in two.  HSt

2016-07-06 15:17:21 326

原创 hadoop1.2.1+hbase集群详解

最近我由于工作原因,我要搭建一套hadoop+hbase集群的测试环境。目前有三台服务器,我计划就在这三台服务器中搭建一套环境,多余的话不说,大家往下看吧。 一、搭建前的准备工作        我有三台服务器,分别是192.168.1.97,192.168.1.98,192.168.1.99。       那我如何来命名呢,97对应的是master,98对应的是slave1

2016-07-06 15:17:14 284

原创 【转】面向程序员的数据库访问性能优化法则

特别说明:1、  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、  本文未深入数据库优化中最核心的执行计划分析技术。 读者对像:开发人员:如果你是做数据库开发,

2016-07-06 15:17:06 667

原创 Spring Batch实例详解

Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。        Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。  

2016-07-06 15:16:57 1063

原创 缓存淘汰算法--LRU算法

1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3. 当链表

2016-07-06 15:16:49 454

原创 缓存淘汰算法--LFU算法

1. LFU类1.1. LFU1.1.1. 原理LFU(Least Frequently Used)算法根据数据的历史访问频率来淘汰数据,其核心思想是“如果数据过去被访问多次,那么将来被访问的频率也更高”。1.1.2. 实现LFU的每个数据块都有一个引用计数,所有数据块按照引用计数排序,具有相同引用计数的数据块则按照时间排序。具体实现如下: 1. 新加入

2016-07-06 15:16:42 394

原创 【转】RAID磁盘阵列学习

RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。       简单的说,RAID是一种

2016-07-06 15:16:35 368

原创 HashMap实现原理分析

1.    HashMap概述:   HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.    HashMap的数据结构:   在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H

2016-07-06 15:16:28 261

原创 LinkedHashMap实现最简单的LRU算法

LRU是Least Recently Used 近期最少使用算法。内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,Oracle会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。LinkedHashMap有一个removeEldestEntry(Map.Entry eldest)方法,通过覆盖这个方法,加入一定的条件,满足条件返回true。当pu

2016-07-06 15:16:20 519

原创 Struts2源码分析

struts2源码分析讲解一、struts2宏观示意图说明:        struts2从宏观上来说分为上图所示的几大模块,主要包括数据流体系和控制流体系。        数据流体系包括:ActionContext和ValueStack。        控制流体系包括:Dispatcher,ActionProxy,ActionInvocation,Interceptor和

2016-07-06 15:16:13 268

原创 【转】FastDFS入门简介

1、背景FastDFS是一款开源的、分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发。该开源项目的主页是 http://code.google.com/p/fastdfs 。可以通过fastdfs.sourceforge.net 下载。FastDFS论坛是 http://www.csource.org ,目前是指向 ChinaUnix 开源项

2016-07-06 15:16:06 271

原创 FastDFS配置详解之Storage配置

1 基本配置disabled #func:该配置文件是否生效#valu:## true:无效## false:生效disabled=false group_name#func;本storage server所属组名group_name=group1 bind_addr#func:绑定本storage server的IPbind_addr=

2016-07-06 15:15:56 2107

原创 FastDFS配置详解之Tracker配置

1 基本配置disable#func:配置是否生效#valu:true、falsedisable=falsebind_addr#func:绑定IP#valu:IP地址bind_addr=192.168.6.102port#func:服务端口#valu:端口整数值port=22122connect_timeout#func:连接超时

2016-07-06 15:15:49 2765

原创 [FastDFS] FastDFS 配置文件详解(修订版1) 【转】

本帖最后由 happy_fish100 于 2012-11-04 20:26 编辑首先是 tracker.conf# is this config file disabled# false for enabled# true for disableddisabled=false# 这个配置文件是否不生效,呵呵(改成是否生效是不是会让人感觉好点呢?) false 为生效(否则不生效) true反之#

2016-07-06 15:15:42 602

原创 Nginx+Tomcat+FastDFS文件下载模块讲解

本文主要以示例的方式讲解,如何简单快速的搭建一个nginx+tomcat结合FastDFS文件系统,进行文件下载的文章,Nginx可以直接配置FastDFS下载,由于在实战中用处不是很大,所以暂时不讲。      1、首先下载nginx安装包,解压并运行。      关于nginx的安装详看http://flychao88.iteye.com/blog/1963365一文。      

2016-07-06 15:15:34 646

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除