JBoss Web和Tomcat的区别

JBoss Web和Tomcat的区别,第1张

在Web 的浪潮中 各种页面技术和框架不断涌现 为服务器端的基础架构提出了更高的稳定性和可扩展性的要求 近年来 作为开源中间件的全球领导者 JBoss在J EE应用服务器领域已成为发展最为迅速的应用服务器 在市场占有率和服务满意度上取得了巨大的成功 丝毫不逊色于其它的非开源竞争对手 如WebSphere WebLogic Application Server JBoss Web的诸多优越性能 正是其广为流行的原因

基于Tomcat内核 青胜于蓝

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 技术先进 性能稳定 而且免费 因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可 其运行时占用的系统资源小 扩展性好 且支持负载平衡与邮件服务等开发应用系统常用的功能 作为一个小型的轻量级应用服务器 Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用 成为目前比较流行的Web 应用服务器

而JBoss Web采用业界最优的开源Java Web引擎 将Java社区中下载量最大 用户数最多 标准支持最完备的Tomcat内核作为其Servlet容器引擎 并加以审核和调优 单纯的Tomcat性能有限 在很多地方表现有欠缺 如活动连接支持 静态内容 大文件和>tomcat最大线程数的设置
Tomcat的serverxml中连接器设置如下
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
tomcat在配置时设置最大线程数,当前线程数超过这个数值时会出错,那么有没有办法捕获到这个错误,从而在client端显示出错信息?
2 如何加大tomcat连接数
在tomcat配置文件serverxml中的<Connector />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于 *** 作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。tomcat5中的配置示例:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
对于其他端口的侦听配置,以此类推。
3 tomcat中如何禁止列目录下的文件
在{tomcat_home}/conf/webxml中,把listings参数设置成false即可,如下:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
4如何加大tomcat可以使用的内存
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
Unix下,在文件{tomcat_home}/bin/catalinash的前面,增加如下设置:
JAVA_OPTS='-Xms初始化内存大小 -Xmx可以使用的最大内存'
需要把这个两个参数值调大。例如:
JAVA_OPTS='-Xms256m -Xmx512m'
表示初始化内存为256MB,可以使用的最大内存为512MB

apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上。

Apache源于NCSA>

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3Consortium、FinancialTimes等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Apache的诞生极富有戏剧性。当NCSA>

Apacheweb服务器软件拥有以下特性:

支持最新的>

拥有简单而强有力的基于文件的配置过程

支持通用网关接口

支持基于IP和基于域名的虚拟主机

支持多种方式的>

集成Perl处理模块

集成代理服务器模块

支持实时监视服务器状态和定制服务器日志

支持服务器端包含指令(SSI)

支持安全Socket层(SSL)

提供用户会话过程的跟踪

支持FastCGI

通过第三方模块可以支持JavaServlets

如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

Apache有名的几个项目介绍

>

这个在前面的段落介绍过了,Apache已经是他的代号了

ActiveMQ

免费开源由java编写符合JMS11标准的消息中间件。

另外,它也支持通过除java语言外的语言的使用

Ant

这个太出名了。标准的批处理工具。是一套基于java的程序打造工具

Commons

一些常用的工具类库,包括common-pool,dbcp,fileupload,Common-beans等。

Excalibur

它的主要产品是一个由java写成的,名字叫做Fortress(要塞)的轻量级的可嵌入式反向控制容器。

iBATIS

并入的一个项目,是ORM的一个很流行的工具

Geronimo

是Apache软件基金会为了创造一个兼容j2ee的容器,而整理出来的一个新成果

Jakarta

许多Java子项目的集成,tomcat,ant等就是从这里孵化出去的。

James

是一套用java开发的邮件、新闻组、消息服务器。它使用的avalon组件框架。目前支持SMTP,POP3和NNTP很快也会支持IMAP

Logging

基于java的可靠,快速,扩展性强的日志工具

Maven

是一套java开发的工程综合管理工具。它基于工程对象模型(POM)的理念

Portals

门户产品

Struts

一套通过servlets和jsp来搭建web应用的MVC框架

Tomcat

用量最大的免费的Java服务器

线程池七大核心参数如下所示:

一、corePoolSize 线程池核心线程大小

线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会被销毁,除非设置了allowCoreThreadTimeOut。这里的最小线程数量即是corePoolSize。任务提交到线程池后,首先会检查当前线程数是否达到了corePoolSize,如果没有达到的话,则会创建一个新线程来处理这个任务。

二、maximumPoolSize 线程池最大线程数量

当前线程数达到corePoolSize后,如果继续有任务被提交到线程池,会将任务缓存到工作队列(后面会介绍)中。如果队列也已满,则会去创建一个新线程来出来这个处理。线程池不会无限制的去创建新线程,它会有一个最大线程数量的限制,这个数量即由maximunPoolSize指定。

三、keepAliveTime 空闲线程存活时间

一个线程如果处于空闲状态,并且当前的线程数量大于corePoolSize,那么在指定时间后,这个空闲线程会被销毁,这里的指定时间由keepAliveTime来设定。

四、unit 空闲线程存活时间单位

空闲线程存活时间单位是keepAliveTime的计量单位。

五、workQueue 工作队列

新任务被提交后,会先进入到此工作队列中,任务调度时再从队列中取出任务。

六、threadFactory 线程工厂

创建一个新线程时使用的工厂,可以用来设定线程名、是否为daemon线程等等。

七、handler 拒绝策略

当工作队列中的任务已到达最大限制,并且线程池中的线程数量也达到最大限制,这时如果有新任务提交进来,该如何处理呢。这里的拒绝策略,就是解决这个问题的。

线程池的优势

1、线程和任务分离,提升线程重用性;

2、控制线程并发数量,降低服务器压力,统一管理所有线程;

3、提升系统响应速度,假如创建线程用的时间为T1,执行任务用的时间为T2,销毁线程用的时间为T3,那么使用线程池就免去了T1和T3的时间。

利用WEB服务器本身的多线程来处理,从WEB服务器多次调用我们需要实现多线程的程序。
 PHP中也能多线程了,那么问题也来了,那就是同步的问题。
安徽电脑培训>

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13281649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-07
下一篇 2023-07-07

发表评论

登录后才能评论

评论列表(0条)

保存