`
taojingrui
  • 浏览: 67574 次
  • 来自: ...
社区版块
存档分类
最新评论
文章列表
一段时间以来,Nosql数据库(e.g MongoDB,membase),分布式缓存(e.g memache)大行其道,在互联网应用中广泛使用。最近以hadoop为首的大型分布式计算,云计算也越来越流行。这几天,又留意到一个新的方面:In Memory Data Grid(自己翻译成“内存数据网格”)。最初接触到这个词是因为Hazelcast,当时只是单纯地考虑用Hazelcast替换memache,今天看到一篇文章对IMDG的解释,感觉挺清楚的,拷贝下来供以后参考。   http://www.theserverside.com/news/thread.tss?thread_id=63 ...
老文章转:   原文:常见非关系型数据库(NoSQL)推荐介绍     1、High performance – 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术, ...
总结一下自己对大型WEB系统架构设计的想法:     1. 一般大型WEB系统的两个共通点: 1) 海量的web访问(以亿为单位的PV) 2)系统需要保存海量数据,这些数据被频繁访问   2. 前端负载均衡考虑: 1)DNS负载均衡 —— 为一个DNS关联多个服务器的IP地址,当客户端发起DNS查询时,对于同一DNS,不同的客户端得到不同的服务器IP地址,从而达到负载均衡的目的。   DNS负载均衡有一个问题,就是没有考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS 请求分配到这台故障服务器上,导致不能响应客户端。即使及时修改了dns设置,还是要等 ...
读了"华黎"的“淘宝Java中间件之路”,记录一下自己的体会。   文章主要讲了淘宝在3个方面的改进:消息中间件(JMS的引入),服务框架(业务模块分离)和分布式数据层(如何处理海量数据的数据库操作)   1. 消息中间件 和EBAY的“Asynchrony Everywhere”想法类似【见Reference中的“Architectural Lessons (round 1)”】,将原本同步的操作,转成异步操作。此外,淘宝采用JMS的发布者/订阅者模式,因此实现了Publisher和Subscriber两端的代码解耦。   2. 服务框架 将业务模块分离 ...
使用rt.jar里的internal类,在编译时可能出错   昨天遇到一个奇怪的编译问题。在Eclipse里,写了一个类A,A引入了一个rt.jar的类SOAPMessageFactory1_1Impl(包名为com.sun.xml.internal.messaging.saaj.soap). 在Eclipse里编译时,没有遇到问题,但当我在unix下,用ant脚本编译就总会报错,大概意思就是说这个类找不到。   足足查了一个多小时,终于找到问题的关键了。原来,并不是所有在rt.jar里的类都是完全公开给大家使用的。在rt.jar里,*.internal.*.java类都是用来给JDK自 ...
前段时间在公司进行了GC的调优实践,记录一下供以后参考。基本上,和网上其他人提供的配置都差不多。   调优前情况:   采用并行收集器,系统TPS约600,为每隔15分钟左右会产生一次FullGC,FullGC的时间大约15秒,FullGC期间系统无法接收任何响应,操作系统的CPU使用率下降到5%一下(平时大约30%-40%)。   调整前JVM参数: -server -D_Offline_FileDataArchive=true -Xms512m -Xmx2048m -Xss256k -XX:MaxPermSize=256m -XX:+UseParallelGC -X ...
J2EE 6和Glassfish 3V正式发布了,J2EE 6正式发布了Servlet3.0, 为了能更好的对WEB2.0提供支持, 3.0添加了异步处理的机制.   HTTP1.1相对于HTTP1.0的影响 .   HTTP1.1最大的一个改变就是提供了长连接,这样HTTP不再是一次请求,一次连接的协议了 ...
前段时间用hibernate的时候,看到用范型加ParameterizedType进行设计的例子,使用的比较巧。用ParameterizedType进行切面编程十分轻巧。   下面是一个利用ParameterizedType进行切面编程的例子:   例子中有一个抽象的JpaDaoImpl.java类,所以继承该类的XXXJpaDAOImpl,都对应于一个数据库表(table)。<E extends AbstractEntity, I>中的‘E’就表示该数据库表对应于Java中的entity。JpaDaoImpl类本身也implements了Dao<E, I>的接口 ...
  1. modify JAVA_OPTIONS to enable the jmx remote connection of Weblogic.   setenv JAVA_OPTIONS '-Xdebug -Xnoagent -Djava.compiler=none -Xrunjdwp:server=y,transport=dt_socket,suspend=n,address=35902 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremo ...
首先一句话:serialVersionUID 用来表明类的不同版本间的兼容性 (这句话是100%转载)   Java在处理远程调用时,是通过判断serialVersionUID是否相同来决定本地与远程调用方所使用的类(class)是否相同的。一个很有意思的地方:哪 ...
对于Java 5.0多线程编程的学习,可以参考一下网上的下面的几篇文章: Java 5.0多线程编程(sun公司的文章,很值得一看) http://gceclub.sun.com.cn/Concurrency/Java5_Multi_Thread.html 还有一篇The Java Tutorials的文章. http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html 还有就是--> 学习笔记 - java.util.concurrent 多线程框架: http://www.ismayday.com/?p ...
很好的文章,自己保存一下,留做参考。 JVM 一、什么是Java虚拟机      当你谈到Java虚拟机时,你可能是指:     1、抽象的Java虚拟机规范     2、一个具体的Java虚拟机实现     3、一个运行的Java虚拟机实例 二、Java虚拟机的生命周期      一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。     Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须 ...
对于Webservice的应用来说,我们通常都是用UTF-8进行网络传输,但也有通过GBK和GB2312传输的情况,但是在我们Webservice的代码实现中,其实是不用关心具体的传输编码的,因为根据RFC2376的定义,Webservice的引擎(axis,cxf,jaxws..)会根据文件传输的ContentType及XML 声明部分定义的编码自动将网络传输过来的内容(字符串)转换成unicode(jvm运行时的字符串都是以unicode形式存在的)。以下是RFC2376的描述:   例子1:  webservice传输的文件 Content-type: application/x ...
 关于Web Application Server的Classloading,网上已经有成千上万的文章讨论过了。最近工作中,在使用weblogic的时候,又遇到了这方面的一些问题,记录下来,方便以后提醒自己。   首先要说说Weblogic的classloading的机制(不同的Applicait ...
前段时间,项目中讨论了改进logging的问题。   我们在日常的代码中常常需要在在一个方法(method)的开始的时候log一下输入参数,在方法(method)结束时log一下return参数(很常见的问题),之前我们都是通过开发人员自己手动写代码去实现log,但是这样真的很麻烦,很多类似log的代码在程序里也不好看,于是借鉴了他人的想法,利用反射和method级的annotation来实现对入参和return值的logging。   1。首先定义一个Annotation来标记method是否需要打log @Retention(RetentionPolicy.RUNTIME) @T ...
Global site tag (gtag.js) - Google Analytics