当前位置: 首页 > 知识库问答 >
问题:

Tomcat连接器是如何工作的?

闾丘康安
2023-03-14

假设您使用一个(阻塞)生物连接器,如下所示:

你做了201个并发连接,最后一个连接会发生什么?

如果您创建了1001个并发连接,那么最后一个连接会发生什么?

接下来,让我们使用一个(非阻塞)NIO连接器protocol=“org.apache.coyote.http11.http11nioProtocol”

如果我们进行201和1001并发连接,会有什么不同吗?

据我所知,NIO和NIO2之间没有行为差异,只有实现不同,这是真的吗?

我制作了一个小servlet如下所示:

Thread.sleep(2000);
response.getWriter().write("ok");

设置这些设置connectiontimeout=“20000”maxconnections=“10”maxthreads=“2”并发出50个并发请求。所有都将被接受,然后一次执行2个(作为执行线程完成)。即使connectiontimeout=“20000”maxconnections=“10”,也没有请求超时或出错。

protocol=“org.apache.coyote.http11.http11nioProtocol”protocol=“org.apache.coyote.http11.http11Protocol”完全相同。我想当您有keep-alive连接时,差异就会显现出来。BIO会在整个连接期间阻塞一个线程,NIO会在每次请求后释放线程。

正如Dennis R所指出的,当我测试相同的场景但添加了参数acceptcount=“15”时,只有大多数请求返回org.apache.http.conn.HTTPhostConnectException:到http://localhost:8080的连接被拒绝

------编辑2---------

注意,如果我设置这个maxconnections=“100”acceptcount=“15”,那么所有50个连接都被接受。

共有1个答案

鲁品
2023-03-14

以下是配置参数:Apache Tomcat 8配置引用基本上是Executor,标准实现中队列默认长度为:AcceptCount=100

Max connections是总共接受的连接数(在队列中和正在处理中)。连接被拒绝,我假设是基于首先到达的任何东西。

NIO不受请求处理器线程的限制。

下面是很好的总结/比较

 类似资料:
  • 问题内容: 我在阅读redux的示例文档,然后发现了这个容器组件的示例。有人可以解释为什么在这种情况下不需要mapDispatchToProps吗。同样,该函数如何获得调度功能? 问题答案: 将作为一个组件传递,即使没有状态或预定义的动作也仍然有用。多数民众赞成在不需要您的代码的原因 现在,在组件中,您正在分解道具以仅访问。 如果您利用它,可以将您的操作作为对组件的支持,然后将其命名为。因此,上述

  • 简而言之,我是这样理解的: null 我有以下问题: 1)如果我不在Tomcat上使用TSL,那么在NIO之前使用ARP有什么优势吗?我在热身后测试我的应用程序,我注意到ARP处理请求比NIO慢,在处理请求时偶尔会暂停。JIT>本机代码?或者在某些条件下它可以运行得更快? 2)如果NIO2使用hadnler回调,这是否意味着我需要分配更多的线程? 3)NIO2比nio快?因为第一次查看时,NIO线

  • 问题内容: 我想知道Java链接器如何工作。具体来说,它将类,接口,包,方法等以何种顺序组合为jvm可执行格式。我在这里找到了一些信息,但是关于链接顺序的信息并不多。 问题答案: 没有Java“链接器”之类的东西。但是,存在类加载器的概念,该类加载器给出了“某处”中的java字节代码数组,可以创建类的内部表示形式,然后可以与etc 一起使用。 在这种情况下,接口只是特殊的类。加载类后,方法和字段将

  • null 任何想法都将受到赞赏。

  • 我目前正在配置kafka连接(与debezium/连接docker映像),我成功地使用环境变量将其连接到Kafka: 现在我必须创建一个源连接器(),我希望kafka connect从源获取的数据在kafka主题中接收。 由于数据库连接器的 json 配置中没有这样的配置,我必须在哪里设置接收器的 kafka 配置? 我必须创造一个连接Kafka主题的接收器吗?如果是,我们在哪里指定这是一个接收器

  • 我需要让我的Spring Boot应用程序在新端口上动态启动/停止侦听。我知道为此需要在Spring环境中注入一个新的tomcat连接器。 我能够使用ServletWebServerFactory和tomcatConnectorCustomizer添加连接器。但是这个bean只在Spring启动时加载。 有没有办法在运行时添加tomcat连接器?比如说方法调用? 我设法在运行时添加了一个Tomca