- 博客(54)
- 收藏
- 关注
原创 Spring事务传播机制解惑
概述当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务环境中,Service接口方法可能会在内部调用其它的Service接口方法以共同完成一个完整的业务操作,因此就会产生服务接口方法嵌套调用的情况,Spring通过事务传播行为控制当前的事务如何传播到被嵌套调用的目标服务接口方法中。事务传播是Sp...
2014-08-27 10:14:53 55
原创 mybatis防止sql注入
转自:http://cs-css.iteye.com/blog/1752680sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序。所以在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部替换为存储过程这...
2014-08-25 09:35:14 93
原创 网站安全之——sql注入
转自:http://baike.baidu.com/view/3896.htm原理SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库...
2014-08-24 20:58:42 172
原创 网站安全之—— XSS攻击
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17027893,转载请注明。 转自:https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/09.3.md XSS又称CSS,全称Cross SiteScript,跨站...
2014-08-24 20:54:05 424
原创 网站安全之——CSRF攻击
转自:http://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/转自:https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/09.1.mdCSRF(Cross Site Request Forgery, 跨站域请求伪造)是一...
2014-08-24 20:47:29 115
原创 网站安全之——Cookie窃取和 Session劫持
转自:http://shaoshuai.me/tech/2014/08/16/cookie-theft-and-session-hijacking.html转自:https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/06.4.md此篇文章的Presentation戳这里。一、co...
2014-08-24 20:36:52 748
原创 网站安全之——重放攻击
转自:http://baike.baidu.com/view/1569933.htm重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。它是一种攻击类型,这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,重放攻...
2014-08-24 20:26:35 2311
原创 storm简介
转自:http://www.searchtb.com/2012/09/introduction-to-storm.html伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样、更加便捷,同时对于信息的时效性要求也越来越高。举个搜索场景中的例子,当一个卖家发布了一条宝贝信息时,他希望的当然是这个宝贝马上就可以被卖家搜索出来、点击、购买啦,相反,如果这个宝贝...
2014-08-21 17:27:01 80
原创 Java 8那些被冷落的新特性
lambda表达式,lambda表达式,还是lambda表达式。一提到Java 8就只能听到这个,但这不过是其中的一个新功能而已,Java 8还有许多新的特性——有一些功能强大的新类或者新的用法,还有一些功能则是早就应该加到Java里了。这里我准备介绍它的10个我个人认为非常值得了解的新特性。总会有一款适合你的,开始来看下吧。default方法这是Java语言的一个新特性,现在接...
2014-08-21 16:43:06 83
原创 mysql记录耗时的sql
author:skatetime:2012/02/17mysql记录耗时的sqlmysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。1.mysql慢查询日志启用:mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?mysql> show variables like ...
2014-08-21 10:11:33 104
原创 ActiveMQ监控脚本
#!/bin/sh export JAVA_HOME=/usr/local/jdk1.6.0_11DATE=<code>date+%Y%m%d%H</code># get the pid of the activeMQ in your system. the activeMQ port is 61616 PidofAMQ=<code>...
2014-08-21 09:32:01 405
原创 Solr performance tuning
http://h3x.no/2011/05/10/guide-solr-performance-tuningIntroductionI have for the last year been working a lot with the Solr search engine, and figuring out how to get the best performance from...
2014-08-19 15:22:29 168
原创 23种设计模式之解释器模式详解
解释器模式详解 作者 左潇龙,火龙果软件 发布于 2013-11-04 解释器模式是平时工作当中相对冷门的一个设计模式,也非常的难于理解,百度百科上的解释也非常之少,只是简单的介绍了一下,并且说了一句,可以参考正则表达式为一个实际的应用例子。不过资料的匮乏并不能阻止我们对真理的探索,下面LZ先将百度百科上的定义以及解决的问题拔...
2014-08-19 13:40:24 88
原创 23种设计模式(9):访问者模式
定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图: 访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下:[java] view plaincopy class A { pub...
2014-08-19 11:14:51 91
原创 JAVA设计模式学习10——组合模式
转自:http://alaric.iteye.com/blog/1910919 这节开始学习结构模式,结构模式包括:组合模式、门面模式、适配器模式、代理模式、装饰模式、桥模式、享元模式。从组合模式开始学习。组合模式(Composite)就是把部分和整体的关系用树形的结构来表示,从而使客户端能够把部分对象和组合起来的对象采用同样的方式来看待。树图结构一般包含一个根节点,若干个树...
2014-08-19 09:50:59 67
原创 深入浅出外观模式
作者:LoveLion ,发布于2013-1-25,来源:CSDN 外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。1. 外观模式概述不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶...
2014-08-19 09:29:06 196
原创 nginx解决Ajax跨域问题
今天遇到一个ajax跨域问题,下拉框的数据源要从一个接口获得,但是该接口被部署到另外一台服务器上,在本地可以通过http请求访问,并可以返回json的数据,但是放到页面中不可以获取到下拉框的值,发现chrome控制台中该请求成功,但是没有返回值,于是便遇到了跨域的问题,请教一同事,问题得到解决:1.搭建nginx服务器 下载nginx,我用的是nginx1.0.0,下载之后放到一个目录...
2014-08-18 15:29:33 151
原创 Java的多线程编程模型5--Java中的CAS理论
CAS,compare and swap的缩写,中文翻译成比较并交换。我们都知道,在java语言之前,并发就已经广泛存在并在服务器领域得到了大量的应用。所以硬件厂商老早就在芯片中加入了大量直至并发操作的原语,从而在硬件层面提升效率。在intel的CPU中,使用cmpxchg指令。在Java发展初期,java语言是不能够利用硬件提供的这些便利来提升系统的性能的。而随着java不断的发展,J...
2014-08-18 14:02:22 79
原创 SSDB 部署
转自:http://ssdb.io/docs/zh_cn/install.html 强烈推荐你把 SSDB 部署在 Linux 操作系统上.不要在生产环境中使用 Windows 操作系统来运行 SSDB 服务器. 如果你确实必须使用 Windows 操作系统, 请在上面运行一个 Linux 虚拟机, 然后再让 SSDB 运行于这个虚拟机之中.编译和安装wget --no-ch...
2014-08-18 13:27:39 132
原创 Solr之缓存篇
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有:(1)filterCache(2)documentCache(3)fieldvalueCache(4)queryresultCache而每种Cache针对具体的查询请求进行对应的Cache。本文将从几个方面来阐述上述几种Cache在Solr的运用,具体如下:(1)Cache的生命周期(2...
2014-08-15 17:41:59 139
原创 用于企业的 Solr
使用 Apache Solr 实现更加灵巧的搜索,第 2 部分: 用于企业的 Solr管理、配置和性能在本部分中,Lucene Java™ 的提交人 Grant Ingersoll 通过对用于企业的特性(包括管理界面、高级配置选项)以及与性能相关的特性(比如缓存、复制和日志记录)的探究,完成了对 Solr 的介绍。0 评论:Grant Ingersol...
2014-08-15 14:03:42 142
原创 solr缓存
Solr 搜索引擎,因此其数据缓存是定义在 Solr 核心配置文件 solrconfig.xml. 一般情况下,如果 Solr 应用的内存足够,将这些缓存设置大一些会得到更好的性能。过滤器缓存 (Filter cache). Solr 中通过过滤器查询来缩小搜索范围,以有助于提升搜索性能。对 于每个过滤结果,可以放置在专用缓存中。这个缓存通过过滤查询条件作为缓存关键字,相同的查询会通过缓 存...
2014-08-15 14:01:34 154
原创 缓存淘汰算法
缓存淘汰算法系列之1——LRU类1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访...
2014-08-15 09:38:50 124
原创 Solr学习之五:Solr查询参数及语法
一. 查询参数1. CoreQueryParam查询的参数1) q: 查询字符串,必须的。2) q.op: 覆盖schema.xml的defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定。3) df: 默认的查询字段,一般默认指定。4) qt: query type,指定查询使用的QueryHandler,默认为“standard”。...
2014-08-14 16:23:58 205
原创 (转)Kafka部署与代码实例
转自:http://shift-alt-ctrl.iteye.com/blog/1930791 kafka作为分布式日志收集或系统监控服务,我们有必要在合适的场合使用它。kafka的部署包括zookeeper环境/kafka环境,同时还需要进行一些配置操作.接下来介绍如何使用kafka. 我们使用3个zookeeper实例构建zk集群,使用2个kafka broker构建...
2014-08-14 13:43:42 286
原创 How to Analyze Java Thread Dumps
The Performance Zone is supported by New Relic and AppDynamics. Both are leaders in the APM space with high-profile customers and massive cost reductions for those users.The content...
2014-08-13 17:33:27 306
原创 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔
一、总结前一天的学习从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是:ü 吞吐量ü Responsetimeü Cpuloadü MemoryUsage我们也在第三天的学习中对Apache做过了一定的优化,使其最优化上述4大核心指标的读数,那么我们的Apache调优了,我们的Tomcat也作些相应的调整,当完成今的课程后,到时你...
2014-08-13 16:39:20 105
原创 转:CMS gc实践总结
首先感谢阿宝同学的帮助,我才对这个gc算法的调整有了一定的认识,而不是停留在过去仅仅了解的阶段。在读过sun的文档和跟阿宝讨论之后,做个小小的总结,如果有谬误,敬请指正。 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,...
2014-08-13 15:47:09 80
原创 [转载]触发Full GC执行的情况
除直接调用System.gc外,触发Full GC执行的情况有如下四种。1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的Full GC,调优时应尽量做到让对象在Minor ...
2014-08-13 15:14:12 73
原创 mysql-锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。一、概述MySQL有三种锁的级别:页级、表级、行级。MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持...
2014-08-12 15:20:47 77
原创 MyISAM InnoDB 区别
MyISAM 和 InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 以下是一些细...
2014-08-12 15:18:21 79
原创 MySQL行锁深入研究
做项目时由于业务逻辑的需要,必须对数据表的一行或多行加入行锁,举个最简单的例子,图书借阅系统。假设id=1的这本书库存为1,但是有2个人同时来借这本书,此处的逻辑为SELECT restnum FROM book WHERE id =1 ; --如果restnum大于0,执行update UPDATE book SET restnum=restnum-1 WHER...
2014-08-12 15:10:05 78
原创 事务策略: 了解事务陷阱
在应用程序中使用事务常常是为了维护高度的数据完整性和一致性。如果不关心数据的质量,就不必使用事务。毕竟,Java 平台中的事务支持会降低性能,引发锁定问题和数据库并发性问题,而且会增加应用程序的复杂性。关于本系列事务提高了数据的质量、完整性和一致性,使应用程序更健壮。在 Java 应用程序中实现成功的事务处理不是一件容易的事,设计和编码几乎一样重要。在这份新的 系列文章 中,...
2014-08-12 15:07:19 74
原创 zookeeper observer
observer的行为在大多数情况下与follower完全一致, 但是他们不参加选举和投票, 而仅仅接受(observing)选举和投票的结果.observer可以在不影响写性能的情况下提升集群的读操作的性能,他只接受读请求,将写请求转发给leader。配置方法:1,设置为observer的节点必须显示的在zoo.cfg中进行如下配置server.4=ip:2888:3888:...
2014-08-11 15:41:24 537
原创 基于事件的 NIO 多线程服务器
JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处理能力和处理中的等待时间,达到提高服务能力的目的。 多线程的引入,容易为本来就略显复杂的 NIO 代码进一步降低可读性和可维护性。引入良好的设计模型,将不仅带来高性能、高可靠的代码,也将带来...
2014-08-10 13:54:59 100
原创 Java NIO的介绍及工作原理
针对传统I/O 工作模式的不足,NIO 工具包提出了基于Buffer(缓冲区)、Channel(通道)、Selector(选择器)的新模式;Selector(选择器)、可选择的Channel(通道)和SelectionKey(选择键)配合起来使用,可以实现并发的非阻塞型I/O 能力。NIO 工具包的成员Buffer(缓冲器)Buffer 类是一个抽象类,它有7 个子类分别对应于七种基...
2014-08-10 13:53:46 92
原创 Dubbo基本原理机制
转自:http://blog.csdn.net/paul_wei2008/article/details/19355681分布式服务框架:–高性能和透明化的RPC远程服务调用方案–SOA服务治理方案-Apache MINA 框架基于Reactor模型通信框架,基于tcp长连接Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费...
2014-08-10 13:26:14 102
原创 zookeeper机制原理
zookeeper机原理(长连接):Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管。当对目录节点监控状态打开时,一旦目录节点的状态发生变化,Watcher 对象的 process 方法就会被调用。(任何实现org.apache.zookeeper.Watcher类,持有zook...
2014-08-10 13:23:26 172
原创 ZooKeeper示例 实时更新server列表
转自:http://coolxing.iteye.com/blog/1871520 通过之前的3篇博文, 讲述了ZooKeeper的基础知识点. 可以看出, ZooKeeper提供的核心功能是非常简单, 且易于学习的. 可能会给人留下ZooKeeper并不强大的印象, 事实并非如此, 基于ZooKeeper的核心功能, 我们可以扩展出很多非常有意思的应用. 接下来的几篇博文, 将...
2014-08-10 13:22:31 79
原创 zookeeper系列之通信模型
本文的主题就是讲解Zookeeper通信模型,本节将通过一个概要图来说明Zookeeper的通信模型。Zookeeper的通信架构在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client负责发起应用的请求,Follower接受client发起的请求,参与事务的确认过程,在leader crash后的leader选择。而leade...
2014-08-08 16:31:14 102
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人