自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (3)
  • 收藏
  • 关注

原创 java并发编程--AbstractQueuedSynchronizer加锁和解锁分析(二)

 在 java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、 ReadWriteLock(实现类ReentrantReadWriteLock),其实现都依赖 java.util.concurrent.AbstractQueuedSynchronizer类,实现思路都大同小异,因此我们以 ReentrantLock作为讲解切入点。...

2016-05-31 15:31:57 98

原创 在Spring中基于JDBC进行数据访问时如何控制超时

Transaction Timeout > Statement Timeout > JDBC Driver Socket Timeout Transaction Timeout指一组SQL操作执行时应在设定的时间内完成(提交或回滚),否则将引发超时。它的值应大于 N(语句数) * Statement TimeoutStatement Timeout指完成单条SQL语句...

2016-05-31 15:00:08 248

原创 阿里连接池Druid源码中的部分配置研究

Druid是一个JDBC组件,它包括三部分:DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。DruidDataSource 高效可管理的数据库连接池。SQLParser 常见配置说明配置默认值说明name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可...

2016-05-31 14:24:00 288

原创 AbstractQueuedSynchronizer的介绍和原理分析

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

2016-05-31 10:12:16 100

原创 FutureTask 源码分析

FutureTask是JDK中Future模式的标准实现,它同时实现了Runnable和Future两个接口,提供了可取消的异步计算,并且可以利用开始和取消计算的方法、查询计算是否完成的方法和获取计算结果的方法。public class FutureTask<V> implements RunnableFuture<V> { /** 所有的方法全部委托syn...

2016-05-31 10:10:59 56

原创 深入理解JDBC的超时设置

ImportNew注: 本文由新浪微博:@哥墨迹 投稿至ImportNew。感谢 @哥墨迹 ! 如果你希望分享好的原创文章或者译文,欢迎投稿到ImportNew。恰当的JDBC超时设置能够有效地减少服务失效的时间。本文将对数据库的各种超时设置及其设置方法做介绍。 真实案例:应用服务器在遭到DDos攻击后无法响应 在遭到DDos攻击后,整个服务都垮掉了。由于第四层交换机不堪重负,网络变...

2016-05-30 19:10:13 118

原创 Spring事务超时时间可能存在的错误认识

1、先看代码1.1、spring-config.xmlJava代码  <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">      <property name="driverClassName" value="com...

2016-05-30 19:08:54 189

原创 druid 数据源 removeAbandoned 源码分析

protected void createAndStartDestroyThread() { destroyTask = new DestroyTask(); if (destroyScheduler != null) { // <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> ...

2016-05-30 18:30:21 216

原创 MySQL的timeout那点事

因为最近遇到一些超时的问题,正好就把所有的timeout参数都理一遍,首先数据库里查一下看有哪些超时:root@localhost : test 12:55:50> show global variables like "%timeout%";+----------------------------+--------+| Variable_name              |...

2016-05-30 14:32:41 104

原创 MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded

java.lang.Exception:### Error updating database.  Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction### The error may involve defaultParameterMap### The error occurr...

2016-05-30 14:26:52 116

原创 Spring事务配置参数说明

一、Propagation:  - REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 - SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。  - MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。  - REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。  - NOT_SUPPORTED--以非事...

2016-05-29 20:10:08 131

原创 线程池超时异常

        public void execute2(){        for (int j = 0; j >= 10; j--) {                                    forkJoinPool.addTask(new Callable<Integer>() {                        @Override      ...

2016-05-29 19:58:08 356

原创 Java高级-线程同步lock与unlock使用

一、Lock与Synchronized区别Java中可以使用Lock和Synchronized的可以实现对某个共享资源的同步,同时也可以实现对某些过程的原子性操作。Lock可以使用Condition进行线程之间的调度,Synchronized则使用Object对象本身的notify, wait, notityAll调度机制,这两种调度机制有什么异同呢?Condition是Java5...

2016-05-29 19:40:31 168

原创 FutureTask源码解析

站在使用者的角度,future是一个经常在多线程环境下使用的Runnable,使用它的好处有两个:线程执行结果带有返回值提供了一个线程超时的功能,超过超时时间抛出异常后返回。那,怎么实现future这种超时控制呢?来看看代码:123public class FutureTask<V> implements RunnableF...

2016-05-29 19:31:12 81

原创 服务发现:Zookeeper vs etcd vs Consul

如果使用预定义的端口,服务越多,发生冲突的可能性越大,毕竟,不可能有两个服务监听同一个端口。管理一个拥挤的比方说被几百个服务所使用的所有端口的列表,本身就是一个挑战,添加到该列表后,这些服务需要的数据库和数量会日益增多。因此我们应该部署无需指定端口的服务,并且让Docker为我们分配一个随机的端口。唯一的问题是我们需要发现端口号,并且让别人知道。当我们开始在一个分布式系统上部署服务到其中...

2016-05-27 22:23:27 117

原创 分布式服务注册和发现consul 简要介绍

Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更"一站式",内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较 为简单。Consul用Golang实现,因此具有天然可移植性(支持Linux、wi...

2016-05-27 22:22:20 213

原创 使用Hystrix提高系统可用性

(图片来源:https://github.com/Netflix/Hystrix/wiki)然而任何一个服务的可用性都不是 100% 的,网络亦是脆弱的。当我依赖的某个服务不可用的时候,我自身是否会被拖死?当网络不稳定的时候,我自身是否会被拖死?这些在单机环境下不太需要考虑的问 题,在分布式环境下就不得不考虑了。假设我有5个依赖的服务,他们的可用性都是99.95%,即一年不可用时间约为4...

2016-05-27 18:17:02 120

原创 事务的隔离级别及mysql中相关的设置

事务的隔离级别及mysql中相关的设置 进入mysql管理界面后,可执行如下sql [sql] select @@tx_isolation; //查看隔离级别 set transaction isolation level read uncommitted; //设置读未提交级别 start transaction; //打开事务 rollb...

2016-05-27 17:08:05 82

原创 hadoopDB 数据仓库 简介

读了两篇关于hadoopDB数据仓库的论文之后,写一点关于hadoopDB的简介: hadoopDB是耶鲁大学的一个大学项目, 目的是为了构建一个数据仓库的工具。HadoopDB 结合了hadoop 和paralled RDBMS,结合两个技术的优点。HadoopDB is to connect multiple single_node database systemusing ...

2016-05-26 21:34:38 202

原创 MyBatis+MySQL 返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。   方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.my...

2016-05-26 18:56:23 114

原创 SELECT FOR UPDATE

MySQL  使用SELECT ... FOR UPDATE 做事务写入前的确认以MySQL 的InnoDB 为例,预设的Tansaction isolation level 为REPEATABLE READ,在SELECT 的读取锁定主要分为两种方式:SELECT ... LOCK IN SHARE MODE SELECT ... FOR UPDATE这两种方式在事务(Transa...

2016-05-26 18:36:11 73

原创 Java final关键字详解

在java中,final关键字可以有如下的用处: final关键字可以被加到类的声明中,final类是不允许继承的; final关键字可以被加到方法声明中,final方法是不允许重写的(override),这个效果同私有方法一样; final关键字可以被家到属性或者变量的声明中,final属性或者变量一旦赋值之后就不允许再发生变化。对于基本类型(primitive type),比如int、do...

2016-05-25 23:34:22 131

原创 Druid配置示例

<bean id="propertyConfigurer"         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">         <property name="locations">             <list>      ..

2016-05-25 23:34:06 156

原创 HTTP Keep-Alive模式

故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文:HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,...

2016-05-25 23:33:49 85

原创 HDFS小文件处理解决方案总结+facebook(HayStack) + 淘宝(TFS)

一、概述手机图片或者像淘宝这样的网站中的产品图片特点:(1)、大量手机用户同时在线,执行上传、下载、read等图片操作(2)、文件数量较大,大小一般为几K到几十K左右 HDFS存储特点:(1)      流式读取方式,主要是针对一次写入,多次读出的使用模式。写入的过程使用的是append的方式。(2)      设计目的是为了存储超大文件,主要是针对几百MB,GB,...

2016-05-25 23:33:31 165

原创 HttpClient4.0 Http连接池 长连接

/* * ==================================================================== * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE ...

2016-05-24 17:44:03 883

原创 HttpClient4.0 Http连接池技术简介

连接池技术作为创建和管理连接的缓冲池技术,目前已广泛用于诸如数据库连接等长连接的维护和管理中,能够有效减少系 统的响应时间,节省服务器资源开销。其优势主要有两个:其一是减少创建连接的资源开销,其二是资源的访问控制。连接池管理的对象是长连接,对于HTTP连 接是否适用,我们需要首先回顾一下长连接和短连接。       所谓长连接是指客户端与服务器端一旦建立连接以后,可以进行多次数据传输而不需重...

2016-05-24 17:29:40 371

原创 配置TOMCAT及httpClient的keepalive以高效利用长连接

总 所周知http1.1(http1.0不是标准,依服务器而定)是支持长连接的,长连接能够保证服务器和客户端的socket能够高效利用,减少握手等额 外的开销。httpClient在正常情况下会带上Connection: keep-alive表示我是支持长连接的,当完成一个请求后,视情况决定是否关闭连接。 正常情况下,服务器在返回内容的头中会带上如下信息:  但是如...

2016-05-24 17:14:08 205

原创 短连接http方式如何转变为'长连接'模式

http://apps.hi.baidu.com/share/detail/32253377 HTTP实现长连接HTTP是无状态的  也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的Web页中包 含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一...

2016-05-24 17:11:37 1030

原创 Druid 数据源监控配置

一、关于DruidDruid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilt...

2016-05-24 11:06:45 129

原创 HTTP长连接与短连接

1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。 2. 如何理解HTTP协议是无状态的...

2016-05-22 09:11:21 101

原创 http和socket之长连接和短连接区别

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议                  UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状...

2016-05-22 09:10:11 100

原创 中文分词算法概述

一、中文分词技术综述1、全文检索技术所谓全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就 根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。在中文文档中根据是否采用分词技术,索引项可以是字、词或词组,由此可分为基于字的全 文索引和基于词的全文索引。基于字的全文索引是指对于文章中的每一个字...

2016-05-20 10:59:32 640

原创 Java应用性能管理工具 Pinpoint

Pinpoint 是用 Java 编写的 APM(应用性能管理)工具,用于大规模分布式系统。在 Dapper 之后,Pinpoint 提供了一个解决方案,以帮助分析系统的总体结构以及分布式应用程序的组件之间是如何进行数据互联的。安装agent是无侵入式的对性能的影响最小(只增加约3%资源利用率)支持的模块:JDK 6+Tomcat 6/7/8...

2016-05-20 10:58:37 374

原创 RocketMQ原理解析-consumer 1.启动

有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消息。   Consumer消费拉取的消息的方式有两种 1.      Push方式:rocketmq已经提供了很全面的实现,consumer通过长轮询拉取消息后回调MessageListener接口实现...

2016-05-19 15:20:24 120

原创 RocketMQ命令整理

1.1. 控制台使用RocketMQ 提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker 等信息的管理;登录控制台首先进入RocketMQ 工程,进入/RocketMQ/bin在该目录下有个mqadmin 脚本查看帮助在mqadmin 下可以查看有哪些命令sh mqadmin查看具体命令的使用sh mqadmin help 命令名称例如,...

2016-05-19 14:01:44 92

原创 简单介绍MySQL中的事务机制

从一个问题开始 最近银行这个事情闹的比较厉害啊,很多储户的钱放在银行,就不翼而飞了,而银行还不管不问,说是用户的责任,打官司,用户还能输了,这就是“社会主义”。咱还是少发牢骚,多种树,莫谈国事。 说到银行存钱,就不得不说一下从银行取钱这件事情,从ATM机取钱这件简单的事情,实际上主要分为以下几个步骤:     登陆ATM机,输入密码;    连接数据库,验证密码;...

2016-05-19 13:59:24 108

原创 如何实现XA式、非XA式Spring分布式事务

Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式。理想的实现取决于你的应用程序使用何种资源,你愿意在性能、安 全、系统稳健性、数据完整方面做出何种权衡。在这次JavaWorld大会上,来自SpringSource的David Syer跟大家分享了Spring应用的几种事务处理机制、三...

2016-05-17 17:33:41 153

原创 未加星标 Redis禁用FLUSHALLFLUSHDBKEYS命令

FLUSHALL FLUSHDB 命令会清空数据,而且从不失败,对于线上集群非常危险。KEYS * 命令,当数据规模较大时使用,会严重影响Redis性能,也非常危险。如果从根本上规避这些风险呢?Redis提供了非常简单且有效的方法,直接在配置文件中设置禁用这些命令。设置非常简单,如下rename-command FLUSHALL ""rename-command FLUSHDB...

2016-05-17 11:18:56 87

原创 【grunt整合版】30分钟学会使用grunt打包前端代码

grunt是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩、合并文件,初学,有误请包涵准备阶段1、nodeJs环境因为grunt是基于nodeJs的,所以首先各位需要安装nodeJS环境,这块我们便不管了http://www.cnblogs.com/yexi...

2016-05-17 11:07:00 73

servlet购物车

简单的servelt购物车。适合初学者兼用~

2010-06-03

javascript通讯录

包括一些网页设计常用的类的代码:时间日期类、鼠标事件类、状态烂特效、页面效果类、图形图象类、按钮特效类、文本特效类、信息检测类、警告提示类、菜单类、窗口特效类、综合类,框架。

2010-05-24

jsp.通讯录管理系统

jsp通讯录,实现增,删,改,查,分组,分页的功能,适合初学着兼用!

2010-05-24

空空如也

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

TA关注的人

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