Tomcat的默认连接器

Tomcat有几个连接器可供选择。 我将把APR连接器放在一边,而将重点放在BIO和NIO上。

BIO连接器(阻塞I / O)正在阻塞–它使用线程池,每个线程在该线程池中接收请求,处理请求,响应并返回到该池。 在阻塞操作期间(例如,从数据库读取或调用外部API),线程被阻塞。

NIO连接器(非阻塞I / O) 要复杂一些 。 它使用java NIO库并在请求之间进行多路复用。 它有两个线程池–一个容纳轮询器线程,该轮询器线程处理所有传入的请求,并将这些请求推送到由另一个线程池中的工作线程处理。 两种池大小都是可配置的。

何时选择NIO与BIO取决于使用情况。 如果您大多数情况下都是常规的请求-响应用法,那么这无关紧要,甚至BIO可能也是一个更好的选择(如我之前的基准测试所示 )。 如果您有长期的连接,那么NIO是更好的选择,因为它可以为更多的并发用户提供服务,而无需为每个用户分配阻塞的线程。 轮询线程负责将数据发送回客户端,而工作线程则负责处理新请求。 换句话说,轮询器和工作线程都不会被单个用户阻止和保留。

随着异步处理servlet的引入,拥有上一段中的后一种情况变得更加容易。 也许这就是在Tomcat 8中将默认连接器从BIO切换到NIO的原因之一。记住这一点很重要,尤其是因为它们没有完全更改“默认值”。

默认值始终为“ HTTP / 1.1”,但是在Tomcat 7中“使用自动切换机制选择基于阻塞 Java的连接器或基于APR / native的连接器”,而在Tomcat 8中“使用自动切换”。选择基于非阻塞 Java NIO的连接器或基于APR /基于本机的连接器的机制”。 为了使事情变得更艰难,他们引入了NIO2连接器。 老实说,我不知道默认情况下使用两个NIO连接器之一。

因此,即使您对tomcat配置有所了解,也请记住默认值的这种更改。 (通常,我建议阅读所有属性的文档并在服务器上使用它们)

翻译自: https://www.javacodegeeks.com/2015/07/tomcats-default-connectors.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应急响应 WEB 分析日志攻击,后门木马(手动分析 和 自动化分析.)

转载文章:https://blog.csdn.net/weixin_54977781/article/details/124976164?spm1001.2100.3001.7377&utm_mediumdistribute.pc_feed_blog_category.none-task-blog-classify_tag-17-124976164-null-null.nonecase&depth_1-utm_sourcedistribute.pc_feed_…

thinkphp第一节结构

thinkphp 网站:http://thinkphp.cn 输入网址:localhost:8080/demo/ 则说明thinkphp安装成功 目录结构如下: application子目录结构: common:公用文件目录 home:Home模板 Runtime:记录运行信息 home目录下&a…

孙叫兽进阶之路之软件开发生命周期

孙叫兽,前端全栈开发工程师,java工程师。 软件开发生命周期:

并发基础知识:死锁和对象监视器

本文是我们学院课程中名为Java Concurrency Essentials的一部分 。 在本课程中,您将深入探讨并发的魔力。 将向您介绍并发和并发代码的基础知识,并学习诸如原子性,同步和线程安全之类的概念。 在这里查看 ! 目录 1.活泼 1.1。 …

常用的30+种未授权访问漏洞汇总

未授权访问漏洞汇总预览 1 、FTP 未授权访问(21) 2 、LDAP 未授权访问(389) 3 、Rsync 未授权访问(873) 4 、ZooKeeper 未授权访问(2181) 5 、Docker 未授权访问(2375&a…

孙叫兽进阶之路之敏捷开发

孙叫兽,前端全栈工程师,java工程师,技术交流请添加主页QQ群,微信公众号:电商程序员

四:理解Page类的运行机制(例:基于PageStatePersister的页面状态存取)

有人说类似gridview datalist这样的控件最好不要用在高并发,IO大的网站中企业应用中为了快速开发到可以用一用因为这是一类"沉重"的组件我们姑且不谈这种看法的正确性(我个人觉得有道理)只谈它为什么笨重:因为这些控件给页面带来了大量的viewstate<input type&quo…

Fiddler使用教程

一、简介及原理 1.1 Fiddler简介 Fiddler 是一个 HTTP 协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的 HTTP 通讯。Fiddler 提供了电脑端、移动端的抓包、包括 http 协议和 https 协议都可以捕获到报文并进行分析&#xff1b;可以设置断点调试、截取…

js 引入 缓存_引入故意缓存

js 引入 缓存几周前&#xff0c;我参加了ThoughtWorks 技术雷达研讨会。 我在ThoughtWorks工作了多年&#xff0c;并认为如果有人知道这些人在软件开发方面的发展趋势如何。 在技​​巧上带有上升箭头的数字中&#xff0c;第17位被称为“周到缓存”。 和斯科特肖一起喝酒时&…

我是如何用JSP在网络上架构一个网上招标系统,以推进网站无纸化,过程电子化,管理智能化的发展

声明&#xff1a;部分代码参考与网络&#xff0c;如有侵权请联系博主删除&#xff0c;博主本着学习的态度和大家一起成长。 项目github地址&#xff1a;https://github.com/sunmenglei/sunmengleiwangshangzhaobiao/ 背景&#xff1a;从本世纪初&#xff0c;互联网开始加速发展…

动态语言支持

本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的过程&#xff01; 在这里查看 &#xff01; 目录 1.简…

我是如何使用git把本地代码上传到github上的,值得借鉴

背景&#xff1a;最近开发了一套招标系统&#xff0c;我是如何用JSP在网络上架构一个网上招标系统&#xff0c;以推进网站无纸化&#xff0c;过程电子化&#xff0c;管理智能化的发展。 使用git进行上传。 首先自己得有git工具及github账号&#xff0c;自己没有的提前准备一下。…

期中总结

期中总结&#xff1a; 第一章 计算机系统漫游 1.1 Linux基础 1.Linux命令 command [options] [arguments] //中括号代表是可选的&#xff0c;即有些命令不需要选项也不需要参数 选项&#xff08;options&#xff09;或参数&#xff08;arguments&#xff09; 选项是调整命令执…

Kali WPScan的使用(WordPress扫描工具)

一、WPScan简介 WordPress网站介绍 WordPress是全球流行的博客网站&#xff0c;全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。 Wordpress作为三大建站模板之一&#xff0c;在全世界范围内有大量的用户&#xff0c;这也导致白帽子都会去跟踪 WordPr…

【jquery系列|Jquery总结篇】包含各种实例,文末有彩蛋!

孙叫兽,前端全栈工程师,微信公众号:电商程序员,如果本文对你有帮助,记得收藏点赞+关注。 jQuery 是一个 JavaScript 库,极大地简化了 JavaScript 编程,很容易学习。(注:本文不演示效果) 简介:jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优…

文件包含之日志中毒(User-Agent)

目录 一、本地文件包含 二、日志中毒 获取反弹shell获得目标服务器的完全控制权 方法一&#xff1a; 方法二&#xff1a;/var/log/auth.log 一、本地文件包含 本地文件包含漏洞指的是包含本地的php文件&#xff0c;而通过PHP文件包含漏洞入侵网站&#xff0c;可以浏览同服务器所…

对象池回收对象_回收对象以提高性能

对象池回收对象总览 在上一篇文章中&#xff0c;我说过对象反序列化更快的原因是由于使用了回收对象。 由于两个原因&#xff0c;这可能令人惊讶&#xff1a;1&#xff09;相信如今创建对象是如此之快&#xff0c;无关紧要或与回收自己一样快&#xff0c;2&#xff09;默认情况…

由于业务需求,我是如何在需要页面添加悬浮按钮进行切换并添加水印的

背景:APP页面位置有限,列表形式展示,需要做一个悬浮按钮进行切换列表,并给切换的列表添加水印便于区分。 孙叫兽,前端全栈程序员,java程序员,微信公众号:电商程序员 目录 悬浮按钮的实现; 水印功能的实现: 悬浮按钮的实现; body: <!-- 在首页添加一个悬浮按钮…

昆仑镜Kunlun-M使用方法

文章目录 项目介绍和安装测试项目介绍根据Readme.md进行安装扫描测试 实战扫描扫描实战报错1报错2更新项目并重新扫描 扫描结果分析漏洞验证 项目介绍和安装测试 项目介绍 根据Readme.md进行安装 请使用python3.6运行该工具&#xff0c;已停止维护python2.7环境。 安装命…

NOIP前夕:noi.openjudge,Maximum sum

Maximum sum 总Time Limit: 1000msMemory Limit: 65536kB Description Given a set of n integers: A{a1, a2,..., an}, we define a function d(A) as below: t1 t2 d(A) max{ ∑ai ∑aj | 1 < s1 < t1 < s2 < t2 < n } is1 js2 Your task is to calc…