假设在高流量的Web服务器上,来自客户端的请求有不同类型。例如:用户请求与内部/管理类型。 而且,在用户请求中, 有那些你想要更迅速服务的人 (因为它们更具时间关键性,更频繁等等)。
处理这些请求的单个servlet是" light" - 它看到了 每个请求的内容,并立即调用后端进程来处理它。
因此,如果您希望优先处理这些请求,请优先考虑服务器上的这些后端进程 - 为它们提供更多的CPU时间,为它们分配多个服务器实例等。
这里的问题是:是否做同样的事情 servlet以及这些后端进程是一个问题。 我知道servlet容器(在这种情况下是Tomcat) 有一些机制 - 虽然我不知道究竟是什么/如何。
在本讨论的一侧 - 是:编写不同的servlet代码 针对不同的客户请求,以便您可以 在服务器级别管理其优先级/执行时间。
另一方面 - 没有,根本没有:
servlet处理请求并分派它们
到相应的进程而不烧掉执行时间。
它是时间要求严格的后端流程。
事实上,这正是Spring正在做的事情 -
将DispatcherServlet
作为所有传入请求的前端控制器。
作为所有请求的前端控制器的单个servlet是声音架构。
几天前就讨论了这个问题。直到那时, 我在" no"方 - 上面的段落。 但是,我现在还不是很清楚。 我想知道什么是声称的反驳论点 "管理servlet的类型优先级 提高服务客户端请求的时间性能。"
TIA。
// ============================================= =====
编辑:
如果案件"是"上面,那么Spring怎么说 servlet容器有关不同类型的请求,以便s.container可以优先考虑它们吗?
答案 0 :(得分:1)
我不认为请求优先级会对线程时间执行产生巨大影响,除非在单个Web服务器上讨论数百万个线程等巨大流量。但如果这是你想要的,你可以配置tomcat来优先排序线程。 Tomcat允许您指定执行程序的线程池中每个线程的优先级:tomcat thread pool