webx—Session框架详解



webx—Session框架详解

这个session框架是依赖于我们的通用service框架的。由于service框架是Webx框架的基础,所以Webx自然可以方便地使用这个session框架。

 

对于webx之外的WEB应用 —— 例如:独立运行的JSP、由其它应用框架如webwork制作的应用 —— 我们提供了一个filter。这样所有的应用都可以使用我们的session框架,从而支持cookie-based session、berkeleyDB-based session以及扩展出任意类型的session实现。

 

 [......]

Read more

Spring资源加载



Spring将各种形式的资源封装成一个统一的Resource接口。通过这个Resource接口,你可以取得URL、InputStream和File对象。当然,Resource对象所代表的资源可能不存在,此时InputStream就取不到。如果Resource不是代表文件系统中的一个文件,那么File对象也是取不到的。

Spring通过“注入”的方式来设置资源。假如你有一个Java类:

 

  1. public class MyBean {
  2.     private Resource confi[......]

Read more

Redis缓存 配置

Redis缓存

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
redis支持各种不同方式的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。不同的是redis会周期性把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-sla[......]

Read more

Netty使用方法介绍

Netty使用方法介绍。

Netty 是一个异步的、事件驱动的网络编程框架,可以快速开发出可维护的、高性能、高扩展能力的协议服务及其客户端应用。
Netty 是一个基于NIO的客户端、服务器端编程框架,使用Netty可以确保你快速简单的开发出一个网络应用。例如实现了某种协议的客户端、服务端应用。Netty简化了网络应用的编程开发过程,例如:TCP和UDP的socket服务开发。
“快速”和“简单”并不意味着会让你的最终应用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP、SMTP、HTTP、各种二进制、文本协议,并经过相当精心设计的项目,最终,[......]

Read more

装饰者模式&代理模式

装饰者模式&代理模式

一、装饰者模式

 

装饰者模式,在保持原有功能不变的情况下将一个类重新装饰,使其具有更强大的功能,用一句成语形容“锦上添花”。

 

类结构:

 

 

Component:抽象组件,定义了一组抽象的接口,指定了被装饰的组件都有哪些功能。

 

ComponentImpl:抽象组件实现类,完成了基本的功能实现

 

Decorator:装饰器角色,持有Component的实例引用,有点递归的感觉。

 

&nbsp[......]

Read more

javaweb本地缓存的使用

javaweb本地缓存的使用.

缓存对于提升系统性能效果显而易见,而且成本也比较低,深受程序员的青睐。

最简单的用法就是定义一个集合类,存储一些对象信息,下次使用时不需要从别的地方重新获取,而是直接在本地集合类查询即可。常用的是基于k-v 键值对Map系列

示例:

 

  1. /**
  2.  * 类CollectionCache.java的实现描述:TODO 类实现描述
  3.  *
  4.  * @author onlyone
  5.  */
  6. public class CollectionCache[......]

Read more

大型系统架构演化 历史进程

大型系统架构演化 历史进程。

互联网系统一般会有几个特色标签:用户基数大、高并发高访问量、海量数据存储、业务更新频繁。看似复杂的系统也不是一蹴而就,任何事情都会经历一个由小到大的发展过程。今天我们就来看看一个系统是如何随着业务的扩张而不断演化的。

 

1. 早期的系统由于业务简单,应用服务器和数据库都是在一台服务器。

2.  随着用户访问量逐渐增大,系统资源慢慢成为瓶颈。此时可以考虑将应用服务器与数据库分离,各司其职

 

3. 数据压力全部压在了数据库上,此时数据库会有点吃不消,我们可以考虑将一些不经常变化的数据存在缓存中[......]

Read more

Tomcat性能优化

Tomcat性能优化

web压力测试的实现原理都是通过发送大量的重复的页面请求来模拟多用户对被测系统的并发访问,以此达到产生压力的目地。产生压力的手段都是通过录制或编写压力脚本,这些脚本以多进程或多线程的方式在客户端运行,这样通过人为制造各种类型的压力,我们可以观察被测系统在各种压力情况下的反映,从而定位系统瓶颈,作为系统调优的基础。目前已经市场上的性能测试工具不下一百种,从单一的开放源码的免费小工具如 Apache 自带的 web 性能测试工具 Apache Benchmark、开源的Jmeter 到大而全的商业性能测试软件如 Mercury 的 LoadRunner 等等。

&[......]

Read more

jvm调优 优化方法

jvm调优 优化方法

jvm性能调优的目地:
1)控制jvm的堆栈大小。比如当你的程序年轻代对象在某个时间段产生的比较多的时候,就需要控制年轻代的堆大小。同时还要控制总的JVM大小避免内存溢出
2)控制GC的行为。GC是一个后台处理,但是它也是会消耗系统性能的,因此要根据运行程序的特点来更改GC行为。
3)控制jvm线程的内存分配。如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的。
堆大小设置
-Xms   初始堆大小
-Xmx   最大堆大小(通常与-Xms设成一样值)
-Xmn   年轻代的大小
-XX:MaxPermSize   持久代的大小
-Xs[......]

Read more

web系统流量控制

web系统流量控制 一个新系统上线之前都要做性能测试(并发数、QPS、TPS、页面响应时间等),该措施一个有效前提是我们知道系统的预估承载量,

比如我们知道网站的日访问PV,访问的时间段等,有了这些数据并根据下面的公式,就不难做性能测试了。

 

 

 

 

 

日PV和TPS之间如何对应?公式就是80%的日PV,发生在T小时内。则公式为:

 

TPS =  日PV * 80% / 24 * 60 * 60 * (T/24)

 

定义 R = 1万 * 80%[......]

Read more