自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring配置ActiveMQ持久化发布、订阅Topic

通过Spring对ActiveMQ进行配置开发,发布订阅模式,支持消息的持久化。需要Spring2.5版本以上,如果有多个订阅者,每个订阅者需要指定不同的 clientId 。 发布者的配置: Xml代码  xml version="1.0" encoding="UTF-8"?>    beans xmlns="http://ww

2016-07-19 09:30:49 2314

转载 Java经典设计模式(2):七大结构型模式(附实例和详解)

总体来说设计模式分为三大类:创建型模式、结构型模式和行为型模式。博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则。设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章: Java经典设计模式之五大创建模式(附实例和详解)。接下来我们看看结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中

2016-04-15 15:20:41 423

转载 Java经典设计模式(1):五大创建型模式(附实例和详解)

一、概况总体来说设计模式分为三大类:(1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。(2)结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。(3)行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解

2016-04-15 15:16:50 377

原创 并发控制:CountDownLatch、CyclicBarrier和Semaphore详解

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。  以下是本文目录大纲:  一.CountDownLatch用法  二.CyclicBarrier用法  三.Semaphore用法  若有不正之处请多多谅解,并欢迎

2016-04-13 16:49:15 6825

原创 CentOS6.5下Tomcat搭建Solr5.4.0集群

一、软件准备1、jdk1.7或以后, 安装目录:/install/jdk/jdk1.8.0_602、tomat9.0,安装目录:/install/tomcat/tomcat-9.0.03、solr5.4,解压目录:/opt/software/solr-5.4.04、zookeeper-3.4.7,解压目录:/opt/software/zookeeper-3.4.

2016-01-28 01:45:17 1187

转载 Tomcat搭建solr伪集群(solr5.2.1+tomcat8.0.23+zookeeper3.4.6)

提示:    1.本文中用到的solr,tomcat,zk都是相对于此博客最新的版本,solr的每个大版本的变更都无法完美的向前兼容,所以这次的solr5和solr4也是一样。   2.本次是在一台机器上部署3个zk,4个tomcat,所以端口会有相应的改变(俗称伪集群)首先下载相应的包zookeeper-3.5.0-alpha.tar.gz,a

2016-01-27 19:39:34 1068

原创 CentOS6.5下Tomcat部署Solr5.4.0

软件准备:1、jdk1.8, 安装目录:/install/jdk/jdk1.8.0_602、tomat9.0,安装目录:/install/tomcat/tomcat-9.0.03、solr5.4,解压目录:/opt/software/solr-5.4.0二、部署solr1、创建solr的home目录,此目录用于存放solr索引数据mkdir /install/s

2016-01-20 14:56:12 798

转载 JVM调优总结(十二)-参考资料

能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:) · Java 理论与实践: 垃圾收集简史 · Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning · Improving Java Application Perfo

2016-01-14 11:44:54 294

转载 JVM调优总结(十一)-反思

垃圾回收的悖论    所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK增加G1算法的一个重要原因。    当然,上面是从技术角度出发解决垃圾回收带来

2016-01-14 11:44:24 295

转载 JVM调优总结(十)-调优方法

JVM调优工具Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。

2016-01-14 11:43:54 277

转载 JVM调优总结(九)-新一代的垃圾回收算法

垃圾回收的瓶颈    传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个

2016-01-14 11:42:58 292

转载 JVM调优总结(八)-典型配置举例2

常见配置汇总 堆设置  -Xms:初始堆大小  -Xmx:最大堆大小  -XX:NewSize=n:设置年轻代大小  -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4  -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。

2016-01-14 11:42:06 291

转载 JVM调优总结(七)-典型配置举例1

以下配置主要针对分代垃圾回收算法而言。 堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设

2016-01-14 11:41:37 234

转载 JVM调优总结(六)-分代垃圾回收详述2

分代垃圾回收流程示意  选择合适的垃圾收集算法串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。

2016-01-14 11:41:11 244

转载 JVM调优总结(五)-分代垃圾回收详述1

为什么要分代    分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。     在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是

2016-01-14 11:40:36 302

转载 JVM调优总结(四)-垃圾回收面临的问题

如何区分垃圾     上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈

2016-01-14 11:39:44 328

转载 JVM调优总结(三)-基本垃圾回收算法

可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep):  此算法执行分两阶

2016-01-14 11:39:08 232

转载 JVM调优总结(二)-一些概念

Java对象的大小    基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。    在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object();    这样在程序中完成了一个Java对象的生命,但是它所占的空

2016-01-14 11:38:38 259

转载 JVM调优总结(一)-一些概念

数据类型    Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress

2016-01-14 11:38:00 273

原创 编译hadoop1.2.1 eclipse插件

目录说明      在编译之前,我们需要先下载后hadoop 1.2.1的源码文件,并解压到合适的位置。在此我是把hadoop直接放到D盘根目录,另外由于在编译的工程中需要知道eclipse的路径,所以首先计划目录结构如下如下:Eclipse: D:\DTools\eclipseHadoop: D:\hadoop-1.2.1Step1 导入 Hadoop

2016-01-08 18:33:12 299

原创 CentOS6.5下伪分布安装hadoop1.2.1

0、新增linux用户hadoop1、关闭防火墙和禁用SELinuxsudo service iptables stopvim /etc/sysconfig/selinux 设置:SELINUX=disabled2、设置静态IP地址vi /etc/sysconfig/network-scripts/ifcfg-eth0 设置:DEVICE=eth0BOOTP

2015-12-27 22:33:59 335

原创 CentOS6.5下安装jdk1.6

1、在/usr下创建文件夹java;下载jdk-6u45-linux-x64.bin到该目录下:    cd /usr       mkdir java     cd java2、 安装jdk-6u45-linux-x64.bin文件:    chmod u+x jdk-6u45-linux-x64.bin    ./chmod u+x jdk-6u45-linux

2015-12-27 16:37:23 733

原创 CentOS下搭建Hadoop-1.2.1集群(二):搭建HBase集群

HBase在Hadoop集群下搭建过程:        在安装HBase集群前,必须先安装zookeeper。        ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Z

2015-12-24 14:18:34 625

原创 CentOS下搭建Hadoop-1.2.1集群(一):搭建Hadoop集群

一、搭建环境(前提条件)     系统:CentOS6.4 64bit     软件环境:JDK1.6.0_45  Linux安装JDK请参考其他网络文章     其他:sshd免密码登录环境  请参考此文章  http://chwshuang.iteye.com/admin/blogs/2015040     下载软件包:      hadoop-1.2.

2015-12-24 14:13:53 733

原创 Redisson分布式锁应用:余量扣除示例

余量扣除,即在高并发,大用户下,每个用户的余量数据频繁发生变化。例如:12306的某车次票的余量,商品库存,短信余量账本等。针对,此类频繁发生修改的原子类余量对象,采用mysql,oracle等数据,一定会存在操作瓶颈。本文拟采用内存的办法实现,使用redis+Redisson客户端完成。当然,或许可以采用mangodb这类no-sql数据库。Redisson客户端ht

2015-10-13 18:31:22 2819

转载 Apache Commons-pool实现对象池(包括带key对象池)

Commons-pool是一个apache开源组织下的众多项目的一个。其被广泛地整合到众多需要对象池功能的项目中。官网:http://commons.apache.org/proper/commons-pool/本文是commons-pool的一个简单应用,包括不带key的池和带key的池。带key的池是把key相同的池对象放在一起池里,也就是说有多少个key就有多少个池。

2015-08-26 11:18:12 540

原创 mongoDB 入门指南

一、准备工作1、 下载mongoDB下载地址:http://www.mongodb.org/downloads选择合适你的版本相关文档:http://www.mongodb.org/display/DOCS/Tutorial2、 安装mongoDBA、 不解压模式:将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongo

2015-08-26 09:54:24 268

原创 Java操作MongoDB

开发环境:System:WindowsIDE:eclipse、MyEclipse 8Database:mongoDB开发依赖库:JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jarEmail:hoojo_@126.comBlog:http://blog.csdn.net/IBM_hoojohttp://hoo

2015-08-26 09:53:10 386

原创 Redis客户端Redisson中分布式锁RLock实现

1. 前因    以前实现过一个Redis实现的全局锁, 虽然能用, 但是感觉很不完善, 不可重入, 参数太多等等.    最近看到了一个新的Redis客户端Redisson, 看了下源码, 发现了一个比较好的锁实现RLock, 于是记录下.2. Maven依赖?12345

2015-08-21 11:44:03 6527

原创 Jedis的八种调用方式(事务、管道、分布式)

目录[-]一、普通同步方式二、事务方式(Transactions)三、管道(Pipelining)四、管道中调用事务五、分布式直连同步调用六、分布式直连异步调用七、分布式连接池同步调用八、分布式连接池异步调用九、需要注意的地方十、测试十一、完整的测试代码在这里对jedis关于事务、管道和分布式的调用方式做一个简单的介绍和对比:

2015-08-21 11:29:28 1354

原创 在Eclipse中配置使用Java OpenCV

下载opencv2.4.4.exe解压安装到了D:/ 根目录下。 我命名为了D:/opencv244,里面包含build等文件夹。在eclipse新建一个工程 helloCV (大家可以参看官网步骤http://docs.opencv.org/2.4.4-beta/doc/tutorials/introduction/desktop_java/java_dev_in

2015-08-19 18:05:27 311

转载 JAVA字符串格式化-String.format()的使用

常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Lo

2015-08-18 14:31:47 264

转载 Jedis使用

[java] view plaincopyprint?package com.wujintao.redis;    import java.util.Date;  import java.util.HashMap;  import java.util.Iterator;  import java.util.List;  import java

2015-08-18 09:33:40 330

转载 Java线程锁机制

目录(?)[+]http://www.infoq.com/cn/articles/java-memory-model-5  深入理解Java内存模型(五)——锁 http://www.ibm.com/developerworks/cn/java/j-jtp10264/  Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制http://blog.

2015-07-28 11:24:42 329

转载 高并发量网站解决方案

一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的ht

2015-07-21 15:09:37 72

原创 Java编写一个简单死锁例子

public class DeadLock { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub final Object resource1 = "resource1"; final Object resource2 = "res

2015-07-20 15:41:14 465

原创 JSP自定义标签

一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发自定义标签所涉及到的接口与类的层次结构(其中SimpleTag接口与SimpleTagSupport类是JSP2.0中新引入的)。 目标1:自

2015-07-15 17:31:43 438

转载 Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm

JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring To

2015-07-15 11:59:53 453

转载 利用token来进行防止表单重复提交

对于一些页面,为了防止进行刷新或重复提交,可以通过token令牌来解决,其思路如下:            在生成表单页面事,对应生成一个令牌,然后将令牌存放在表单的隐藏域,也可存放在请求头的cookie中(服务端可以存放在session中或是cookie中)。当提交时判断令牌是否相等,如果相等则进行流程处理,最后在服务端删除对应的令牌,下次提交则发现不相等,则是对应的重复提交进行其他流程

2015-07-15 11:58:42 727

转载 SimpleDateFormat线程安全问题

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一

2015-07-15 11:57:13 697

应用openJMS实现JMS消息发布于订阅

openjms实现jms消息发布于订阅 openjms实现jms消息发布于订阅 openjms实现jms消息发布于订阅 openjms实现jms消息发布于订阅 openjms实现jms消息发布于订阅

2010-09-19

空空如也

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

TA关注的人

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