在Dotnet核心中,有两个内置服务器Kestrel和HTTP.sys。
我想知道这两个服务器之间的区别,以及何时在性能,可靠性,微服务友好性等方面使用特定服务器。
答案 0 :(得分:1)
主要区别在于HTTP.sys仅是Windows,而kestrel也可以在linux上运行。这也意味着HTTP.sys仅需很少的设置即可与Windows身份验证“开箱即用”一起工作,而Kestrel需要更多的设置才能进行设置。在性能方面,它们与http.sys相似,因为它针对Windows进行了优化,但速度更快。 IIS的基础也是HTTP.sys。
可靠性不仅取决于服务器,还取决于其所在的基础设施。 IE,如果您将两者都与kubernetes一起放置在docker中,则它们将是可靠且可扩展的,因为您将拥有处理这一部分的容器。
现在我在两者上都具有微服务,它们非常友好,我将它们用于不同的目的和环境,具体取决于所讨论的服务。
还要提及的是,对于面向公众的服务,无论如何我都使用反向代理,我不熟悉二者在该角色中的作用。话虽这么说,Microsoft建议HTTP.sys如果您有一个前端服务,因为它对开箱即用的攻击更具弹性,但是就像我说的那样,因为我的服务位于处理这些请求的反向代理之后,因此无法验证声明。
希望这会有所帮助