Kestrel服务器 vs IIS服务器
(1)Kestrel 跨平台的,IIS 只能在Windows上
(2)Kestrel是进程内服务器,以一个包形式提供,自身不能单独运行,必须HOST在一个.NET的WEB应用程序中。它内部封装了对libuv的调用,但不是libuv库简单的封装库。Kestrel是个精简的,高效的Http Server。
(3)Kestrel 运行在asp.net core 应用程序中,能高效的处理网络请求。Http.sys运行在内核态中,极大减少了系统调用次数,运行效率很高;自带生存环境的安全,鲁棒性等特点;它也可以作为反向代理,因此它的功能更加强大,主要问题是只能运行在windows下。Kestrel应用在生产环境中需要运行在代理服务器后面,以获取安全性,负载均衡等能力。
什么是中间件?什么是请求通道?
(1)中间件:中间件是组装到应用程序管道中以处理请求和响应的软件。每个组件选择:选择是否将请求传递给管道中的下一个组件;可以在调用管道中的下一个组件之前和之后执行工作。请求委托(Request delegates)用于构建请求管道,处理每个HTTP请求。
请求委托使用Run,Map和Use扩展方法进行配置。单独的请求委托可以以内联匿名方法(称为内联中间件)指定,或者可以在可重用的类中定义它。这些可重用的类和内联匿名方法是中间件或中间件组件。请求流程中的每个中间件组件都负责调用流水线中的下一个组件,如果适当,则负责链接短路。
(2)请求管道:就是一系列的中间件组成了处理通道。
程序猿该如何选择使用那种开发技术呢?
技术没有好坏之分,本人一直从事.Net 开发 也是从.net core 1.0 到现在,也学习过java等技术。
选择技术,需要看该技术是否开源、社区活跃不、组件丰富不、bat/tmd 是否在用、有没有企业级的解决方案等
. Net Core实战+RESTful思想纵深课程,开发优雅RESTful风格API。
了解课程