最近在将不适合在PHP运行的业务迁移到golang,因为有大流量的问题,所以需要做负载均衡。golang就有很好的负载均衡解决方案,但是毕竟用了这么多年的nginx了。所以就有个疑问,到底负载均衡是用自有的解决方案还是用nginx的方案呢。
查了一圈的文档评论吹水得出了下面的结论:
如果是微服务:微服务的话只是处理自己的业务和逻辑不涉及其他的内容,为了减少服务的体积的话,使用自有的负载均衡解决方案就完全可以了。
如果是web应用或者和静态资源纠结不清而且没有使用oss分离资源附件的下载等的话,就需要使用nginx了:
这里是一个老哥的评论,挺靠谱的,贴出来大家看看:
ABOUTYOU
有必要,因为Nginx是专业的完备的HTTP/HTTPS服务器,像很多服务如PHP-FPM,Java Tomcat,Node普遍都躲在Nginx后面跑,这样做的好处就是后端语言只处理自己的请求,不需要处理各种静态资源(img/css/js/file)的请求,比如用户下载一个大文件,如果是后端语言自己处理,那肯定会拖累应用性能,但如果委托给Nginx(X-Accel-Redirect: file_path),Nginx就会用自己的AIO线程池来实现大文件下载支持,就不需要后端语言费力去折腾.
毕竟nginx走了这么多年了,还是有自己的独到的功能和理念是可以用到的。以上是关于负载均衡的一些结论,希望可以帮到大家