HAProxy与Nginx关于动态配置的测试

2017-01-06  本文已影响1209人  Kungfu猫熊

写在前面

目前公司在做基于thrift的服务治理, 目前有针对Java的服务治理框架, 其他语言也想接入到该框架中.现在有两种方案来进行接入, 分别如下:

针对第二个方案,公司运维的同事做了如下的调研, 我现在将这位同事做的调研过程转载这里, 并声明本文大部分内容不是本人原创.

整理的测试过程

Nginx和HAProxy在Tcp方面代理的情况。

下面是对这两个软负载进行简单的对比

所以Nginx 在tcp 的这块的功能暂时不继续往下研究了,等这个月底,看看 openresty 的作者在北京的开源大会中会不会提及他的动态模块了。

因此 本次的测试主要是HAProxy.之前HAProxy 使用上面只是做了简单的代理而已,在重视度上面不够高,所以不够深入。所以目前线上的版本是HAProxy1.4.,有点老的版本了。由于要做动态的配置,所以1.4 是不支持的。我大致的看了下HAProxy官方文档。包含的稳定版 1.5 和1.6的功能。(1.6找到了可以动态切换ip的方式)发现一些可以提升性能的参数,比如:

目前测试了3种方案:

大家看完上述的方案后, 如果可以接受, 用 释放长连接的方案也是可行的。但是需要在代码层做统一的规范,需要良好的设计, 而且国外很多大型架构都有这样的影子,做的非常好的。如下面:
https://github.com/QubitProducts/bamboo

当然我们还是需要依据业务的场景选择。下面是架构方案:


haproxy1

总结

HAProxy dns动态解析的功能,基本上能满足我们的需求,但是需要在配置文件上面进行良好的设计,如果设计的不好,使用过程中reload的几率就会加大。

在dns出现异常的时候, hosts也可以做为备用功能进行切换,可以做到双保险。

上一篇 下一篇

猜你喜欢

热点阅读