关于tomcat几个必知的知识

Connector-连接器

tomcat的连接器

功能:

1.接受连接请求

2.创建request和response对象 用于和 请求端交换数据

3.分配线程让Engine(Servlet容器)处理请求,并将request和response传给Engine.

Connector分两种:

1.Http Connector(大多情况下说的是这种)

2.AJP Connector

protocol-协议类型

Connector的协议

协议类型:

1.BIO: 阻塞的IO

2.NIO/NIO2: 非阻塞IO

3.APR: Apache可移植的运行库,可以实现高扩展和高新能,是Tomcat上运行高并发应用的首选类型,但需要安装apr, apr-utils, tomcat-native等包

不同版本的Tomcat支持的protocol不同:

1.Tomcat7: 支持BIO,NIO,APR

2.Tomcat8: 支持BIO,NIO,APR,NIO2

3.Tomcat9: 支持NIO,APR,NIO2

指定protocol

通过配置文件server.xml中元素下的protocol属性指定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPK9Pqwj-1640081067572)(D:\workspace\personel\study_note\tomcat\tomcat.assets\1640073961109.png)]

取值如下:

1.HTTP/1.1: 默认值,与tomcat版本有关

  • Tomcat7: 自动选取BIO或APR
  • Tomcat8: 自动选取NIO后APR

2.org.apache.coyote.http11.Http11Protocol: BIO

3.org.apache.coyote.http11.Http11NioProtocol: NIO

4.org.apache.coyote.http11.Http11Nio2Protocol: NIO2

5.org.apache.coyote.http11.Http11AprProtocol: APR

BIO和NIO

对于BIO和NIO, Connector处理请求的大致流程

1.客户端向服务器发送请求, 如果客户端和OS完成三次握手建立了连接, 则OS将该连接放入accept队列

2.Connector从accept队列中获取连接

3.在连接中获取请求的数据, 生成request

4.调用servlet容器处理请求

5.返回response

BIO和NIO的区别

HTTP/1.1默认keep-aliver=true, 即长连接, 长连接意味着一次请求结束后, TCP连接不会马上释放掉.

对于BIO而言: 如果TCP连接没有释放掉,那么之前分配给这个连接的线程就是一直处于被占用状态.

对于NIO而言: 如果TCP连接没有释放掉,那么之前分配给这个连接的线程不会处于占用状态.

Connector的3个参数

1.acceptCount

accept队列的长度, 默认100, 即最多有100个连接存在accept队列中

2.maxConnections

tomcat处理连接的最大值, 默认10000, 即此有10000个人同时访问了服务器(后续如果还有人连接,则会放到accept队列,知道accept队列也被放满)

3.maxThreads

处理请求的最大数量,默认200.(比如10000个连接中,同时有250人发请求,此时最多处理200人,剩下50人等线程空闲再处理(针对NIO))

所以一台tomcat服务器最大的并发量多少呢?

我得到的答案:不考虑服务器本身性能的情况下,并发量最多200(默认情况)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值