所有服务器请求类型与多个servlet的单个servlet - 每个请求类型一个

时间:2014-07-08 07:41:00

标签: java spring tomcat servlets

假设在高流量的Web服务器上,来自客户端的请求有不同类型。例如:用户请求与内部/管理类型。 而且,在用户请求中, 有那些你想要更迅速服务的人 (因为它们更具时间关键性,更频繁等等)。

处理这些请求的单个servlet是" light" - 它看到了 每个请求的内容,并立即调用后端进程来处理它。

因此,如果您希望优先处理这些请求,请优先考虑服务器上的这些后端进程 - 为它们提供更多的CPU时间,为它们分配多个服务器实例等。

这里的问题是:是否做同样的事情 servlet以及这些后端进程是一个问题。 我知道servlet容器(在这种情况下是Tomcat) 有一些机制 - 虽然我不知道究竟是什么/如何。

在本讨论的一侧 - :编写不同的servlet代码 针对不同的客户请求,以便您可以 在服务器级别管理其优先级/执行时间。

另一方面 - 没有,根本没有: servlet处理请求并分派它们 到相应的进程而不烧掉执行时间。 它是时间要求严格的后端流程。 事实上,这正是Spring正在做的事情 - 将DispatcherServlet作为所有传入请求的前端控制器。 作为所有请求的前端控制器的单个servlet是声音架构。

几天前就讨论了这个问题。直到那时, 我在" no"方 - 上面的段落。 但是,我现在还不是很清楚。 我想知道什么是声称的反驳论点 "管理servlet的类型优先级 提高服务客户端请求的时间性能。"

TIA。

// ============================================= =====

编辑:

如果案件"是"上面,那么Spring怎么说 servlet容器有关不同类型的请求,以便s.container可以优先考虑它们吗?

1 个答案:

答案 0 :(得分:1)

我不认为请求优先级会对线程时间执行产生巨大影响,除非在单个Web服务器上讨论数百万个线程等巨大流量。但如果这是你想要的,你可以配置tomcat来优先排序线程。 Tomcat允许您指定执行程序的线程池中每个线程的优先级:tomcat thread pool