随笔分类 -  Java开发

摘要:Spring项目组今天发布了Spring 框架4.0.0版本。Spring是一个开源的轻量级Java SE和Java EE开发应用框架,其目的是用于简化企业级应用程序开发。 Spring框架第一个版本发布于2004年,自发布以来已历经三个主要版本更新:Spring 2.0提供了XML命名空间和AspectJ支持;Spring 2.5增加了注释驱动(annotation-driven)的配置支持;Spring 3.0增加了对Java 5+版本的支持和@Configuration模型。今天发布的Spring 4.0.0则首次增加对Java 8的支持。Spring 4.0.0主要改进包括:改进了入. 阅读全文
posted @ 2013-12-14 11:57 锐洋智能 阅读(612) 评论(0) 推荐(0)
摘要:Bean Serializable Interface 的接口让BEAN可以串行化,将其变成一个可保存为以后使用的二进制流。当一个BEAN被系列化到磁盘上或者其他任何地方,其状态被保存起来,其中的属性 值也不会改变。在BEAN的规范中,JSP并没有要求BEAN实现Serializable接口。但是,如果您希望自己控制您所创建的组件的 serialization进程,或者您想serialize并不是标准组件扩展的组件,您必须了解serialization and deserialization的细节。 有几个原因你会把BEAN冷藏起来以备后用。有些服务器通过将所有的SESSION 数据(包括B. 阅读全文
posted @ 2013-12-08 10:41 锐洋智能 阅读(475) 评论(0) 推荐(0)
摘要:Quartz,每次执行job,job永远是全新的对象,但是,如果job实现org.quartz.StatefulJob接口,而不是job接口.此时JobDetail的JobDataMap将会共享一个对象。注意:当实现有状态接口,StatefulJob时,只有JobDetail的JobDataMap是共用的,其他的,比如,Job本身,Trigger等,仍然每次执行的时候是全新的对象。所以,只有JobDetail的JobDataMap是共用的,其他的trigger.getJobDataMap(),context.getMergedJobDataMap(),等这些JobDataMap,任然是全新的以 阅读全文
posted @ 2013-12-08 09:53 锐洋智能 阅读(14825) 评论(1) 推荐(2)
摘要:JobDataMap被用来保存一系列的(序列化的)对象,这些对象在Job执行时可以得到。JobDataMap是Java Map接口的一个实现,而且还增加了一些存储和读取主类型数据的便捷方法。 如果使用一个持久的JobStore,那么必须注意存放在JobDataMap中的内容。因为放入JobDataMap中的内容将被序列化,而且容易出现类型转换问题。很明显,标准Java类型将是非常安全的,但除此之外的类型,任何时候,只要有人改变了你要序列化其实例的类的定义,就要注意是否打破了程序的兼容性。另外,你可以对JobStore和JobDataMap采用一种使用模式:就是只把主类型和String类型存放在 阅读全文
posted @ 2013-12-07 21:50 锐洋智能 阅读(4609) 评论(0) 推荐(0)
摘要:本例中我启动了两个Tomcat作效果测试,先看效果图:现在我们关闭一个Tomcat注意红线的位置和设置的参数有关#org.quartz.jobStore.clusterCheckinInterval 属性定义了Scheduler 实例检入到数据库中的频率(单位:毫秒)。 #Scheduler 检查是... 阅读全文
posted @ 2013-12-07 18:00 锐洋智能 阅读(3421) 评论(2) 推荐(1)
摘要:由于在集群环境下定时器会出现并发和重复执行的问题,我再三考虑记录有5一、把定时器模块单独拿出来放到一台tomcat或者新建一个Java工程手动启动定时器,这样定时器的任务就可以从原来的集群中抽离开来,原来的tomcat集群不再执行定时器任务,而是交给定时器应用单独执行。二、不从集群当中抽离定时器,而是采用另外一个应用统一调度,每次只有一台tomcat执行定时器任务。三、 采用数据库来记录每台tomcat定时器执行的状态,执行的状态可以采用当前执行的时间点来区分,当定时器执行的时候首先应该把当前时间点记录到数据库中 防止另外一台机器重复执行,当另外一台tomcat上面的定时器执行的时候首先会比较 阅读全文
posted @ 2013-12-05 09:54 锐洋智能 阅读(8408) 评论(0) 推荐(0)
摘要:以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架。 此框架的优势: 1、支持Tomcat6和Tomcat7 2、操作粘性或不黏性Session 3、没有单点故障 4、Tomcat的故障转移 5、Memcached的故障转移 6、可插拔的Session序列化 7、支持异步保存Session 8、Sessions发送到Memcached如果他确实修改了 9、JMX管理和监控 步骤: 以下操作步骤的前提... 阅读全文
posted @ 2013-11-30 18:36 锐洋智能 阅读(472) 评论(0) 推荐(0)
摘要:假设Memcached在如下目录:C:\memcached\memcached.exe在CMD中执行如下命令即可再安装一个Memcached服务(记得换个端口号啊!):sc create "Memcached Server1" start= auto binPath= "C:\memcached\memcached.exe -d runservice -m 32 -p 11220 -l 127.0.0.1" DisplayName= "Memcached Server1"下面是启动、停止、卸载该服务的命令:sc start " 阅读全文
posted @ 2013-11-30 18:17 锐洋智能 阅读(1438) 评论(0) 推荐(0)
摘要:在 web.xml里面加入 下面的代码: validatecode webapp.servlet.ValidateCodeServlet validatecode /images/validatecode.jpeg servlet类:import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.util.Random;import javax.imageio.ImageIO;import javax.ser... 阅读全文
posted @ 2013-11-30 13:08 锐洋智能 阅读(3582) 评论(0) 推荐(1)
摘要:我 们都知道对于一些大型的web2.0的网站,在正式部署时一般是部署在不同故障域的多台应用服务器上,以j2ee应用为例,一般我们都会部署在 tomcat下,假如我们部署了10台tomcat服务器,那这10台tomcat可能是部署在不同的机器上,然后将应用程序copy到这10台 tomcat下,然后启动所有tomcat,一般来说这样做的目的是为了达到负载均衡以及避免单点故障,另外也考虑到国内网络环境的原因,避免跨网络运营 商访问而导致访问速度低下的问题,当然不要忘了坐镇这10台tomcat前端的还有我们的反向代理服务器,比如nginx,这个就是另一个话题了,我今天 主要讲的是,对于这种分布式to 阅读全文
posted @ 2013-11-30 08:46 锐洋智能 阅读(520) 评论(0) 推荐(0)
摘要:在windows下作nginx负载均衡测试。nginx的配置文件如下: worker_processes 1;events {worker_connections 1024;}http {includemime.types;default_type application/octet-stream;upstream localhost {server 127.0.0.1:8080 weight=1 max_fails=2fail_timeout=30s;server 127.0.0.1:8081 weight=1 max_fails=2fail_timeout=30s;}sendfileon; 阅读全文
posted @ 2013-11-30 06:50 锐洋智能 阅读(1636) 评论(0) 推荐(0)
摘要:研究tomcat做负载均衡的时候如何实现ha,还有就是不采用session复制的方法做集群。想到的是将session全部存储在后端的缓存服务器中。正好网上有这么一个工具Memcached-session-manager(后面简称msm),所以直接扒下来用了。地址如下:http://code.google.com/p/memcached-session-manager/msm支持 stickty(沾粘会话)和non-sticky(非沾粘会话)两种集群方式。sticky就是前端的loadbanlence能保证每个用户的请求都路由到了同一个tomcat上。non-sticky则每一次请求都可能路由到 阅读全文
posted @ 2013-11-29 23:06 锐洋智能 阅读(4650) 评论(0) 推荐(0)
摘要:一,环境说明操作系统是Windows7家庭版(有点不专业哦,呵呵!),JDK是1.6的版本,Tomcat是apache-tomcat-6.0.35-windows-x86,下载链接:http://tomcat.apache.org/Nginx是nginx-1.3.0,下载链接:http://nginx.org/en/download.htmlMemcached是memcached-1.2.6-win32-bin,下载链接:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip,http://blog.couchbase.com/ 阅读全文
posted @ 2013-11-29 21:59 锐洋智能 阅读(2533) 评论(0) 推荐(0)
摘要:今天因为在调试一个程序,因为工程中用到spring,每次修改类代码时都要重启服务器,搞得很郁闷,于是上网找找有没有可以让java代码每次修改之后 直接加载到服务器的,找了一些还果真有,不过有些方法我试了之后还是不行,最终找到一个可行的方法,在此记下: javaRebel是一个jvm插件,http://www.zeroturnaround.com/jrebel/current/(下载地址) 用起来挺简单的,首先下载javaRebel ,然后打开 MyEclispse 中 Window--Preference--MyEclipse Enterprise Workbench--Servers--T. 阅读全文
posted @ 2013-11-29 17:54 锐洋智能 阅读(754) 评论(0) 推荐(0)
摘要:在开发过程中我们肯定会遇到这样的问题,当我们调试程序的时候,走到一个地方发现引用了一个第三方的东西,点进去一看,会出现一下的画面,没有源代码!!!!这让人很头疼,今天给大家介绍一个Myeclipse上可以用的反编译插件 jad jadclipse,这样就永远与上面的界面说再见了。 jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高。 可惜用起来不太方便。还好找到eclipse下的插件,叫jadclipse,安装好之后,可在Eclipse中双击.class文件,就能直接看源文件,或 jar包中的class文件,也可以直接反编译[可直接查看]。 点解下载插件(如果... 阅读全文
posted @ 2013-11-29 17:39 锐洋智能 阅读(459) 评论(0) 推荐(0)
摘要:最 近的项目是SSH,View层采用Freemarker,但是遇到了一个很大问题,每次修改完ftl文件,都要重新启动tomcat才可以看到所修改的内 容,不但麻烦,而且浪费时间,特别怀念jsp,后来在网上查找解决办法,原来只是一个配置项的问题,对直freemarker的了解又加深了一步,原理及 修改办法如下(以下部分为转载^_^):一般来讲,模版文件改动不会很频繁,在一个流量非常大的网站中,如果频繁的读取模版文件对系统的负担还是很重的,因此 FreeMarker 通过将模版文件的内容进行缓存,来降低模版文件读取的频次,降低系统的负载。当处理某个模版时,FreeMarker 直接从缓存中返回对应 阅读全文
posted @ 2013-11-29 17:05 锐洋智能 阅读(2692) 评论(1) 推荐(0)
摘要:淘宝用的是JBoss,框架是iBATIS,缓存服务器是自己开发的,基本遵循SNA架构,水平扩展,数据库是Oracle,阿里集团的DBA几乎是国内最强悍的。目前淘宝的系统架构正在重构,计划用两到三年时间重写,目标有两个:1、水平扩展已经不满足需求了,还需要水平加垂直扩展 2、开放API,让店家可以把外部网站资源集成到淘宝,不必直接在淘宝开店淘宝首席架构师是原来JBoss的Ben Wang,现在正在招募技术高手加盟,从事这项很有挑战性的工作:设计下一代开放性、支撑数十亿访问量的在线电子商务网站,有意着可以和我联系,向我投递简历: fankai@gmail.com淘宝架构更详细的情况就不方便透露了。 阅读全文
posted @ 2013-11-27 07:25 锐洋智能 阅读(1160) 评论(0) 推荐(0)
摘要:Flashcache是Facebook技术团队的又一力作,最初是为加速MySQL设计的。Flashcache是在Linux层面的,所以任何受磁盘IO困绕的软件或应用都可以方便的使用之。1. Why Flashcache随着时间的流逝,网站上的数据一直在不停的积累。如果你经营的只是一个博客的话,这不会是问题,因为10G的空间,大概就够你写一辈子了(如果放在硬盘上,其实一辈子很短)。如果你恰巧在一个快速增长的公司,数据会越来越多,从MB,到GB,再到TB。如果将这些数据全部放在大容量的SATA、SAS盘上时,会发现性能(响应时间)不够;如果全放在SSD上时,又会发现成本很高。即使公司能够大气 到都 阅读全文
posted @ 2013-11-27 07:08 锐洋智能 阅读(695) 评论(0) 推荐(0)
摘要:最近,由于项目需要,在做关于flashcache的一些工作,主要涉及模块组织、元数据管理及数据分布、读写流程分析、数据在磁盘和 cache(SSD)之间的调度、缺点及可优化方向等一些方面的分析研究。也想,抽空写一下心得,整理一下最近工作的思路,以弥补自己不善于表达的恶习。 特别是,要深入下去的话,会涉及到整个Linux系统栈的各个层次,从文件系统、磁盘缓存、通用块层、驱动层,以及DM的工作流程(细节),也遇到了很多 问题,像DM层基于split_bio如何做拆分,在拆分中的边界问题等,不可能一下子解决,也趁此机会,记录下心里的困惑。好了,不啰嗦了,马上开始!还是从源头讲起。。。flashcac 阅读全文
posted @ 2013-11-27 07:05 锐洋智能 阅读(2509) 评论(0) 推荐(0)