- 博客(89)
- 收藏
- 关注
转载 Druid Monitor
Druid Monitor对于数据源,相信大家已经接触了不少了。比如c3p0、dhcp、proxool等,之后又发现使用tomcat-jdbc可以大大的提高性能。但是针对于我们的高并发的系统来说,总希望能找到一个性能更好、更稳定的产品来代替。在开源中国上偶然发现了很多公司都在使用Druid这个数据源,然后搜索了一些相关资料,有人提供了这几个数据源的性能测试报告,突然发现这个数据源以很好的性
2017-10-13 09:38:22
1262
转载 CentOS6.5下使用NetHogs监控进程网络使用情况
Nethogs 是一个终端下的网络流量监控工具,它的特别之处在于可以显示每个进程的带宽占用情况,这样可以更直观获取网络使用情况。它支持 IPv4 和 IPv6 协议、支持本地网卡及 PPP 链接。下载:从SourceForge上下载nethogs-0.8.0.tar.gz使用wget下载:wget http://sourceforge.NET/projects/nethogs/fi
2017-03-31 14:07:40
3900
转载 HYSTRIX熔断器理解
文章初衷为了应对将来在线(特别是无线端)业务量的成倍增长,后端服务的分布式化程度需要不断提高,对于服务的延迟和容错管理将面临更大挑战,公司框架和开源团队选择内部推广Netflix的Hystrix,一是为了推进各部门的服务使用覆盖率,二是为了增加C Sharp语言版本的参与度(目前公司至少三成服务由.NET编写)。该博文属于个人对Hystrix研究和实践经验。什么是Hystrix?Hys
2017-03-22 23:36:34
6258
转载 阿里RocketMQ Quick Start
RocketMQ单机支持1万以上的持久化队列,前提是足够的内存、硬盘空间,过期数据数据删除(RocketMQ中的消息队列长度不是无限的,只是足够大的内存+数据定时删除)RocketMQ版本:3.1.4 一,部署NameServer:1,安装JDK并设置JAVA_HOME环境变量(启动脚本依赖JAVA_HOME环境变量)2,cd /alibaba-rocketmq/bin进入Ro
2017-01-12 17:55:41
607
转载 java线程池解析
本文转载自:http://www.cnblogs.com/dolphin0520/p/3932921.html,感谢原文作者。Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线
2016-08-30 17:05:09
388
转载 jqGrid+Struts2(-)数据展示
根据jqGrid的文档,要想生成一个jqGrid,最直接的方法就是:$("#grid_id").jqGrid(options);也就是通过选择符得到一个table的jQuery对象,然后调用jqGrid(options),得到一个jqGrid对象。重点就在传入的option选项上了,通过这些选项可以得到各种各样的Grid表格。 1. jqG
2016-08-10 11:55:41
1254
转载 MySQL Cluster初步学习资料整理
1.1 mysql-cluster简介 简单的说,MySQLCluster实际上是在无共享存储设备的情况下实现的一种完全分布式数据库系统,其主要通过NDBCluster(简称NDB)存储引擎来实现。 MySQLCluster刚刚诞生的时候可以说是一个可以对数据进行持久化的内存数据库,所有数据和索引都必须装载在内存中才能够正常运行,但是最新的MySQLClus
2016-08-02 14:25:49
717
转载 MYSQL主从配置及读写分离
MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分
2016-08-01 10:38:49
753
原创 maven本地仓库引入中央仓库方式
**********************************maven本地仓库引入中央仓库方式*************************************************** http://www.sonatype.org upp_server ${mav
2016-07-15 15:05:37
1177
转载 UrlRewriteFilter
动态的URL变成静态的URL可以UrlRewriteFilter来处理 UrlRewriteFilter的介绍: UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如 Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。 为
2016-06-21 15:45:56
445
原创 Struts2的声明式异常处理
Struts2的声明式异常处理在struts2应用程序中你还在使用try catch语句来捕获异常么?如果是这样的,那你OUT啦!struts2支持声明式异常处理,可以再Action中直接抛出异常而交给struts2来处理,当然需要我们在xml文件中配置,由于抛出同样的异常的处理方法通常都一样,所以如果能在xml中配置全局异常,将会使得开发便捷性大大提高。以前的异常捕获可能是这样的:
2016-06-17 16:53:18
294
转载 quartz集群调度机制调研及源码分析
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言quratz是目前最为成熟,使用最广泛的java任务调度框架,功能强大配置灵活.在企业应用中占重要地位.quratz在集群环境中的使用方式是每个企业级系统都要考虑的问题.早在2006年,在ITey
2016-05-26 20:43:38
931
原创 JAVA NIO技术(下)
其余功能介绍看完以上陈述,详细大家对NIO有了一定的了解,下面主要通过几个案例,来说明NIO的其余功能,下面代码量偏多,功能性讲述偏少。Scatter/Gatter分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。
2016-05-26 20:17:59
423
原创 JAVA NIO技术(中)
下面将上面的TCP服务端代码改写成NIO的方式(案例5):public class ServerConnect{ private static final int BUF_SIZE=1024; private static final int PORT = 8080; private static final int TIMEOUT = 300
2016-05-26 20:17:06
430
原创 JAVA NIO技术(上)
现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。再者,现在互联网的面试中上点level的都会涉及一下NIO或者AIO的问题(AIO下次再讲述,本篇主要讲述NIO),掌握好NIO也能帮助你获得一份较好的offer。 驱使博主写这篇文章的关键是网上关于NIO的文章并不是很
2016-05-26 20:15:17
3188
转载 DUBBO架构设计明细
Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容,详见后面描述。
2016-05-26 11:06:18
534
转载 Spring事物回滚
使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。那么什么是检查型异常什么又是非检查型异常呢?最简单的判断点有两个:1.继承自runtimeexception或error的是非检查型异常,而继承自exceptio
2016-05-25 12:12:10
568
转载 SOA架构模式
目前,面向服务的架构(SOA)已成为连接复杂服务系统的主要解决方案。虽然SOA的理论很容易理解,但要部署一个设计良好、真正实用的SOA系统却非常困难。本文试图通过解析SOA的模式,提供与架构相关的技术指导,进而对以上问题提供详尽的的解答。在本文中,一共提到了五种模式。表1列出了这五种模式以及各自相关的问题。模式名称相关问题服务托管如何使服务能够适应不同的配置
2016-05-18 11:21:16
859
原创 openssl 证书操作命令
openssl 证书操作命令生成Self Signed证书# 生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输,# 输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护> openssl genrsa -des3 -out selfsign.key 4096# 使用上面生成的key,生成一个certif
2016-05-06 10:14:52
1049
原创 OGNL表达式的基本语法和用法
一.OGNL中的#、%和$符号 #、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里我们简单介绍它们的相应用途。1.#符号的三种用法 1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getC
2016-04-15 15:29:32
1788
1
转载 脱离 Spring 实现复杂嵌套事务,之十(实现篇)
本文是实现 Spring 的事务控制>系列文章中一篇。本文假设读者已经阅读并理解《实现 Spring 的事务控制,之九(整合七种传播行为)》。其实本文大多数时间是在贴代码。 事务控制的完整代码位于:http://git.oschina.net/zycgit/hasor,DB模块中。 在开始实现事务管理器之前,我们需要知道。这个系统中都有那些元素? 数据库连接
2016-04-07 19:21:53
730
转载 脱离 Spring 实现复杂嵌套事务,之九(整合七种传播行为)
工作流程详解 如果您对本文每一次都提供给您的工作原理图还记忆犹新的话,下面这张图就是综合了上述所有事务控制行为之后的原理图。下一篇文章(实现篇),会根据这张原理图来告诉大家如何实现 Spring 那样的事务管理器。 在开始工作流程讲解之前先对下面图中的一些特殊地方进行说明: 1.“挂起当前事务”和“获取连接”是属于不同的工作但是成对出现的。在实现的时候它们也会被捏
2016-04-07 19:21:13
483
转载 脱离 Spring 实现复杂嵌套事务,之八(MANDATORY - 要求存在事务)
PROPAGATION_MANDATORY(要求不存在事务) 定义: 如果当前没有事务存在,就以非事务方式执行;如果有,就抛出异常。解释: 解释 MANDATORY 行为是最好解释的行为之一。MANDATORY 强调了必须要有事务。这个行为与 NEVER行为工作方式一样,不同的是所判断的情况却正好是相反的。MANDATORY 行为下当前连接不具备事务,会抛出异常,这
2016-04-07 19:20:18
1400
转载 脱离 Spring 实现复杂嵌套事务,之七(NEVER - 排除事务)
PROPAGATION_NEVER(排除事务) 定义: 如果当前没有事务存在,就以非事务方式执行;如果有,就抛出异常。解释: 解释 NEVER 行为是最好解释的行为之一。NEVER 强调了非事务。一旦发现有事务存在,往下连进行都不进行,直接抛出异常。至于工作原理我想就不用多介绍了把。工作原理
2016-04-07 19:19:46
831
转载 脱离 Spring 实现复杂嵌套事务,之六(NOT_SUPPORTED - 非事务方式)
PROPAGATION_NOT_SUPPORTED (非事务方式) 定义: 是指如果存在事务则将这个事务挂起,并使用新的数据库连接。新的数据库连接不使用事务。 解释: NOT_SUPPORTED 行为是 Spring 为我们带来的一种特殊的事务控制行为。在这种行为下它保证了当前对数据库的操作是相当于 autoCommit 值为 true 。 我们回顾第
2016-04-07 19:19:11
10240
转载 脱离 Spring 实现复杂嵌套事务,之五(SUPPORTS - 跟随环境)
PROPAGATION_SUPPORTS(跟随环境) 定义: 是指 Spring 容器中如果当前没有事务存在,就以非事务方式执行;如果有就使用当前事务。 解释: SUPPORTS 行为是 Spring 事务传播属性中最简单的一种行为。SUPPORTS 行为本质上强调了“不作为”。如下图: 似乎我不需要多解释这张图后面的工作原理,大家只要记得。无论
2016-04-07 19:18:33
979
转载 脱离 Spring 实现复杂嵌套事务,之四(NESTED - 嵌套事务)
PROPAGATION_NESTED(嵌套事务) 定义: 在当前事务上开启一个子事务(Savepoint),如果递交主事务。那么连同子事务一同递交。如果递交子事务则保存点之前的所有事务都会被递交。 解释: 所谓嵌套事务,指的就是 NESTED 行为。这一点大家要格外注意。 这是由于“嵌套事务”这个词在 Spring 之后具备了多重含义。一种是指 Spri
2016-04-07 19:17:59
2873
转载 脱离 Spring 实现复杂嵌套事务,之三(REQUIRES_NEW - 独立事务)
RROPAGATION_REQUIRES_NEW(独立事务) 定义: 如果当前存在事务则挂起当前事务,并开启一个全新的事务。新事务与已存在的事务之间彼此没有关系。 解释: REQUIRES_NEW 行为强调了独立性。它保证了每个事务状态管理范围内锁使用的数据库连接是彼此不一样的。例如独立事务会满足“A事务中存在B事务,当B事务递交的时候不影响A事务。A,B两个事务之
2016-04-07 19:17:22
5525
转载 脱离 Spring 实现复杂嵌套事务,之二(REQUIRED - 加入已有事务)
PROPAGATION_REQUIRED(加入已有事务) 定义: 尝试加入已经存在的事务中,如果没有则开启一个新的事务。解释: 解释 REQUIRED 行为并不困难。它是指如果当前连接中如果已经开启了数据库事务,并且有程序在控制这个事务。那么在处理 REQUIRED 行为时将会忽略 commit/rollback 操作,这是加入已有事务的特征。时
2016-04-07 19:16:13
899
转载 脱离 Spring 实现复杂嵌套事务,之一(必要的概念)
目录[-]Spring 提供的几种事务控制事务管理器API接口约定条件数据库连接可能存在的情况理解“new”状态 写这篇博文的目的首先是与大家分享一下如何用更轻量化的办法去实现 Spring 那种完善的事务控制。 为什么需要嵌套事务? 我们知道,数据库事务是为了保证数据库操作原子性而设计的一种解决办法。例如执行两条 update 当第二条执行失败时候顺便将前面
2016-04-07 19:15:07
751
原创 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
软件开发模式对比(瀑布、迭代、螺旋、敏捷)1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。 瀑布式的主要的问题是它的严格分级导致
2016-03-04 16:00:36
750
原创 Hibernate缓存机制
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别)、二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题。随笔虽长,但我相信看完的朋友绝对能对hibernate的 N+1问题以及缓存有更深的了解。一、N+1问题首先我们来探讨一下N+1的问题,我们先通过一个例子来看一下,什么是N+1问题:list()获得对象
2016-01-28 15:50:57
316
原创 Mysql--索引与优化
理解MySQL——索引与优化写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁
2016-01-13 09:52:26
376
原创 基于maven的ssh框架一步一步搭建(二)
目录[-]五、配置profile1、profile是用来做什么的2、配置pom.xml添加properties 和profile3、在根目录加入一个资源属性文件baseconfig.properties4、配置maven pom.xml使得资源属性文件能共享到maven的properties属性5、配置spring配置文件使得spring能够扫描到资源属性文件6
2016-01-10 15:21:38
865
原创 基于maven的ssh框架一步一步搭建(一)
目录[-]一、新建maven项目,配置ssh框架pom的最低支持1、新建一个maven项目 2、添加一个web.xml3、基本ssh框架pom.xml配置二、maven webproject 整合struts21、web.xml 加入中心拦截器配置2、加入log4j.xml3、引入struts2.xml 根据约定由于配置原则,将此配置文件放在更目录即可4
2016-01-10 15:17:27
1156
原创 Java IO 与NIO的区别
下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。复制代码代码如下:IO NIO面向流 面向缓冲阻塞IO 非阻塞IO无 选择器面向流与面向缓冲Java NIO和IO之间第一个最大的区别是,IO是面向流
2016-01-10 12:43:57
377
转载 Java就业指导
Java就业指导 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候向面试官展示这些专业技能。相信此文对正在寻觅Java程序员(Java工程师)职位的freshman以及希望成为中高级Java开
2016-01-09 16:20:37
660
转载 Java面试题全集(C)
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题,如果需要了解相关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。
2016-01-09 16:13:11
960
转载 Java面试题全集(B)
这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。补充:Sun Micr
2016-01-09 16:11:15
1004
转载 Java面试题全集(A)
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 - 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的
2016-01-09 16:09:12
1469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人