微软开源发布可高度自定义的反向代理YARP 1.0版
反向代理是用来监听传入的HTTP请求并根据请求内容将请求转发到适当的服务器进行处理,不过反向代理与第4层电信的防火墙和路由器不同,反向代理是在第7层进行处理,因为需要理解HTTP并且基于HTTP进行服务。
微软公司内部有许多团队和项目需要使用反向代理,因此根据内部需要微软开发YARP项目,该项目能够让用户进行高度自定义使其符合特定场景的使用需求。
YARP在代理请求时会处理来自客户端的HTTP链接,然后使用自己创建到目标服务器的连接,使得客户端和服务端都可以从连接池中获得好处。
至于实际用途方面那就很广泛了,反向代理可以充当一个或一组服务的公共端将公开请求转发到后端服务器进行运行,这既可以隐藏实际URL也可以用作负载均衡来平衡服务器之间的流量获得最佳处理效率。
在博客中微软表示该项目已经发展两年,一开始是因为微软观察到内部多个团队都存在反向代理的需求,因此共同研究出YARP解决方案。YARP是个反向代理工具包,通过使用来自ASP.NET和.NET的基础设施,在.NET中建立高性能的反向代理。
YARP的特点是非常容易进行自定义设置,用户可以根据自己的实际需求进行自定义配置或调整成满足全场景使用需求的工具。
第一个是作为一个全功能代理,YARP利用配置定义一组基于URL模式的路由,这些路由会对应到目标服务器集群,集群中的每个目的地都应该可以处理对应的路由请求。
目的地列表可以根据对话亲和度和服务器健康状况进行过滤,并且使用负载平衡算法选择最终的目的地(目标服务器)。
第二个使用方法是将YARP用于高度自定义的环境,用户可以根据YARP请求程序绕过路由和负载平衡等模块。微软表示开发者甚至可以在同一个程序中混合使用两种方式并根据路由进行切换。
有兴趣的开发者请点击这里阅读微软博客,YARP可以从NuGet下载:https://devblogs.microsoft.com/dotnet/announcing-yarp-1-0-release/