热门排行
简介
Resin是一款采用JAVA语言开发的免费JSP、Servlet服务器,它对servlet和JSP提供了良好的支持,性能也比较优良,它不仅可以显示动态内容,还能显示静态内容。Resin支持负载均衡(Loadbalancing),可以增加WEB站点的可靠性。方法是增加服务器的数量。假如一台SERVER的错误率是1%的话,那么支持负载均衡的两个Resin服务器就可以使错误率降到0.01%。Resin还用一种先进的语言XSL可以使得形式和内容相分离,十分出众,当然它也可以和许多其他的WEB服务器一起工作,比如Apacheserver和IIS等。
功能特点
可靠性
Resin包含了很多可靠的特性,包括服务器自动重启、检测并重启死锁的服务器、管理JVM内存以防止内存泄露等。
集群功能
Resin可以将多个服务器作为一个服务器来对客户进行响应,从而增强服务器的扩展能力。
持久和分布的sessions
持久的session能够在服务器重启的时候保持现有的Http会话,分布式的session可以在多个服务器之间共享Http会话的状态。
增强的本地代码
同时为Windows和Linux系统提供了本地的代码增强支持。能够改善Socket链接、持久链接和文件读写方面的性能。
OpenSSL
提供原生的OpenSSL库支持,比JSSE提供的方案要好很多。
HTTP代理缓存
能够通过内存和磁盘缓存系统提高服务器的性能表现,将动态页面的速度提高到接近静态页面。
Gzip过滤器
通过gzip来减少带宽。
Resin安装与配置
使用Resin首先得安装安装JDK1.5或更高版本,同时确保JDK的安装以及正确设置了环境变量JAVA_HOME。
接下来解压下载的安装包,并打开解压后的文件,找到"resin.exe",双击运行即可。
打开后可以看到"http listening to *:8080",说明服务器正在监听8080端口,"Quit"表示退出服务器。
最后打开浏览器,输入"//localhost:8080/",出现如下图所示内容表示Resin启动成功。
常见问题
Resin停止响应
可能是一个线程死锁的问题,应该进行线程转储。
启用完全调试日志模式,检查日志最后的纪录看看发生了什么。
Resin不停重启动
启用完全调试日志模式,检查记录看看Resin为什么不停的重启它。
java.lang.OutOfMemoryError错误
使用JVM启动参数增加堆(heap)内存。
转储堆,看看那个对象无法被垃圾回收器无法回收。
转储线程,检查占用着对象的不能释放的线程
一个OutOfMemoryError错误通常意味着堆(heap)内存被用尽。一般是应用程序代码保持了对不在使用的对象的引用,垃圾回收器无法对其进行回收。转储堆,能够查到什么代码和什么种类的对象被占用了。
如果对转储或者其它监视工具显示服务器和你的程序实际没有超出堆内存,那么OutOfMemoryError意味着JVM超出了虚拟内存,也就是底层的malloc()调用失败。
通常这种情况,通过使用操作系统工具显示内存使用,JVM自己能够显示其自己的堆内存,但是操作系统工具确显示进程占用了大量的内存。在Windows下使用任务管理器,Unix下使用top或者ps命令。
JVM无法进行堆内存分配
线程,特别是线程堆占用虚拟内存。
JNI库可能调用malloc或者nmap占用虚拟内存。这包括很多数据库驱动,也包含一些Resin使用的JNI代码。
对于.jar/.zip文件,JDK要分配虚拟内存。如果你打开了大量的jar文件,你可能会遇到问题。可以想到用于打开jar的getResourceAsStream没有关闭将会耗尽.jar内存。
运行一会儿,服务器开始变得非常慢
这可能是一个垃圾回收问题。如果你的内存缺乏,然后又创建了大量的对象,这导致垃圾回收器耗尽CPU。如果你内存溢出,JVM将会慢慢停止(连续地进行垃圾收集)直到它死亡。
resin和tomcat 比较
1.很多人说 Resin 速度比 Tomcat 快,而 Tomcat 更加符合标准,可定制性更强;另外利用 Tomcat 的 NIO Connector ,性能完全不输给 Resin。
2.在多个网站中,有使用 Tomcat 的,有使用 Resin 的,但更多的 Tomcat,都是启用了 NIO Connector 的。Resin 使用的是 3.0 的版本、Tomcat 是 6.0。二者在稳定性上都没有任何问题、性能在访问量不大的话,都没有多大的差别。
3.不过 Resin 在一台机器上配置多个运行实例时,稍显麻烦,不像Tomcat复制多份,修改个端口即可,完全独立。
4.另外在最新的 Resin 3.1 / 3.2 中,会自动对URL进行解码处理,导致原来在Tomcat 和 Resin 3.0 上运行正常的程序,到了新版本会有部分乱码的现象。可能 Resin 想让程序更加简单些吧?
5.另外从 Resin 网站上的 ChangeLog 看到,Resin最近好像把注意力放在了 PHP 的引擎改进上(不知道谁会用 Resin 来跑 PHP 呢?), Java 本身少有改动。当然了 Tomcat 也很久没发布新版本了。
下载pro.jar文件,覆盖原来lib目录的pro.jar文件即可。
仅供学习使用,请在下载后24时间内删除。