- 浏览: 421241 次
- 性别:
- 来自: 杭州
最新评论
-
u012916287:
请问大神。这个架构是你们公司的产品吗?最近准备搞一个基于spr ...
基于DDD的微服务架构设计 -
铁柱他哥:
能给我一份源码码,我这儿边出了点儿问题我参考一下
Jersey采用JSP模板 -
hch2012:
大神,膜拜! ...
基于DDD的微服务架构设计 -
cywhoyi:
lionld23 写道等着看呢,速度速度我是抽空再写的,整篇文 ...
从demo到支持高并发 -
lionld23:
等着看呢,速度速度
从demo到支持高并发
文章列表
Pool在N多环境下碰到,比如连接池、线程池、缓存池...
当某一对象从池中取得,那只有等待被用完放回去以后,其它的线程才能再次从池中获取。对象在池中是具有自己生命周期:创建、验证、使用、销毁等等。Pool的方式也许是最好的方式用来管理同一的资源。
运用的场景:
高频率的运用同一的资源
对象大且很消耗内存(DB连接)
需要长时间的初始化
IO消耗大
对象非线程安全
Apache Commons Pool 提供其轻量级的作用,不过它并未使用JDK1.5之后的Execute的框架,这是我觉得可能比较可惜的,就如同Proxool跟Boncp比较,性能指标提升最大一个就是分 ...
Common Definitions
First, let’s start with some definitions. In common usage of the word, a queue is FIFO (first-in-first-out). Just like the first person in line at the post office gets served first. A stack is LIFO (last in first out). Think of a stack of books – the last book you put on the stac ...
缓存已经在我们的系统中成为性能提升最重要的方式,页面级缓存、系统级缓存、数据缓存、数据库内置缓存等等一些列缓存操作,今天要告诉大家spring其实也提供缓存,当然它只支持单点缓存,所以被忽略,局限性比较大,其 ...
众多的XSS攻击冲击到我们的互联网环境,本篇文章想要通过filter的解决方案处理XSS攻击。
先来看下XSS是如何攻击
预防最好的方式是能够清理请求恶意的参数,如果评论如下方式
<div>A's Comments</div>
<div>
<script>
<!--
This script will get all cookies and will send them to attacker's site.
-->
</script>
</div>
就如同上述的方式,确实在现实中成真,这 ...
如果抛开语言的限制,给你Turbo C的让你写一个排序规则,我估计很多人会开始思考空间、时间复杂度问题,想到一些列的排序算法归并、冒泡、插入、选择等基础的排序规则,但是落实到项目中,我在看公司很多员工方式都是冒泡或者采用默认的JDK自选的算法进行算法,这对于IT人士而言,如同行尸走肉,你写得每一行代码,其实都需要考虑清楚,要对你的代码负责。
在本次项目重构过程中,我看到N多冒泡排序,而且是一层套一层,N^n这代码如果数据量一旦非常大,你会发现很难发现问题存在性,你不可能实时查看CPU、Memory,还是希望能够对于自身代码的负责。
代码非常简单,主要是提醒大家能够在写代码时候,时时刻刻 ...
我们常常说Batching(批量增加、批量操作...),那么Batching会增加延迟性,特别针对于本身延迟比较low的系统。
但是从我跟人角度来说,如果Batching的算法如果做得好,不仅会带来吞吐量的增加,而且也降低整个系统的延迟性。
在我们的网络传输时候,经常采用把messages/even捆绑在一起形成数据包,然后提高网络传输的吞吐量,同样我们也会类似的方式在系统中IOPS来帮助我们提高性能。
如果上图1中场景非常容易产生竞争,而下面图是因为通过Queue,但是最终是有单一线程完成批量的操作。
The Algorithm
public final class Ne ...
ExecutorService是非常好用的并发工具,在并行的环境下我们经常通过ExecutorService去回调执行任务。
ExecutorService的任务机制
我现在有一本鸟哥私房菜的Linux书籍大约80M,我想通过3种方式(IO、NIO、NIO buffer),期待是在80ms内完成。
Solution 1: Stream Copy
public static void copy(String in, String out) throws Exception {
FileInputStream fin = new FileInputStream(in);
...
反射的基础知识
- 博客分类:
- JavaGeeker
Why do we need reflection?
检查Object的运行期的class
运行期的构造函数
检查Object运行期的成员变量和方法
调用Object的运行期的方法
Example 1: Get class name from object
import java.lang.reflect.Method;
public class ReflectionHelloWorld {
public static void main(String[] args){
Foo f = new Foo();
System.out.println(f.getCl ...
1. What is immutable object? Can you write immutable object?
Immutable classes are Java classes whose objects can not be modified once created. Any modification in Immutable object result in new object. For example is String is immutable in Java. Mostly Immutable are also final in Java, in order ...
自从碰到N多个性能问题后,看是注意使用ThreadLocal的使用,本章只是体现如何使用ThreadLocal,ThreadLocal在性能方面的提高以及在内存分配方面的优势不再讨论范围内。
ThreadLocal的扼要
一个线程有它独立的流程的stack,在web的应用容器中都有Thread Pool,因为线程的创建都是重量级的消耗。
weblogic、glassfish、jboss都是允许你调解Pool。
需要了解ThreadLocal,那先假设我们自己订制一个简单的ThreadLocal
import java.util.HashMap;
import java.util.M ...
接着http://ray-yui.iteye.com/blog/1944582的火热,兄弟也来一把,关于
Spring Expression Language
主要是告诉大家如何通过annotion以及XML的方式进行EL表达方式的解析,同样也会告诉大家如何通过ExpressionParser 接口类实现对于EL表达式的解析。
工程采用标准的MAVEN,在附件中有提供代码
接下来的例子是把Book类以及其它成员变量注入到Author类
package com.javacodegeeks.snippets.enterprise;
import org.springframe ...
本文目的是通过示例告诉大家sprng bean生命周期的控制。
主要通过两个接口InitializingBean、DisposableBea,验证bean在容器中初始化以及销毁时候的触发事件。
当然也可以通过配置xml的文件,init-method、destroy-method等同于上述两个接口
1.InitializingBean and DisposableBean interfaces
package com.javacodegeeks.snippets.enterprise.services;
import javax.annotation.PostConstruc ...
Spring Social 500px
Spring Social BitBucket
Spring Social Digg
Spring Social Dropbox
Spring Social Flattr
Spring Social Flickr
Spring Social Foursquare
Spring Social Google
server:thinkpadi410i
os:ubantu12
webapp:jersey+spring+ibatis
database:mysql5.5
test tool:jmeter\apache benchmark
50并发rest请求
CAT:BIO
glassfish:
200个并发请求
CAT BIO:
CAT NIO:
Glassfish:
500个请求场景:
CAT BIO:
CAT NIO:
GlassFish: 500以上后,就不敢进行太多的尝试,tomcat的500以上性能还是比较弱的,glassfish比较坚挺
结论:
...
slf4j是一款非常不错的关于log的开源框架,logback是依托于log4j的api,但是它提供了更多的属性,不管是在性能、内存损耗上,都有显著提高,并且它能够提供自动加载、过滤以及其它的属性特征。
第一步,建立pom.xml
<properties>
<slf4j.version>1.6.4</slf4j.version>
<logback.version>1.0.1</logback.version>
</properties>
<dependencies>
<depe ...