Marathon-LB实现服务限流

1.HAProxy配置

参考官网Haproxy的配置手册HAProxy Configuration Manual, 我们可以利用http_req_rate这个配置项实现限流,如下图所示:

2.Marathon-LB配置

Marathon-LB(MLB)是一个根据Marathon应用状态自动调整和配置HAProxy的工具。Marathon-LB既可以用作服务代理,也可以用作负载均衡和服务发现工具。
参考github MLB的Templates信息,我们可以利用HAPROXY_0_BACKEND_HTTP_OPTIONS 这个模板修改服务backend部分的信息,如下图所示:



3.Marathon-LB实现服务限流

利用marathon发布服务blackname,marathon.json中配置label如下:

"HAPROXY_0_BACKEND_HTTP_OPTIONS": " stick-table type ip  size 200k  expire 60s store conn_rate(30s) , bytes_out_rate(30s) \n tcp-request content  track-sc2 src  \n acl conn_rate_abuse  sc2_conn_rate gt 5  \n acl data_rate_abuse  sc2_bytes_out_rate  gt 20000000 \n http-request deny  if conn_rate_abuse \n http-request deny  if data_rate_abuse \n"

MLB会动态监控marathon的事件流,动态生成Haproxy的配置文件。经过上面的配置,在浏览器30S之内访问次数大于5 次会断开TCP连接。如下图所示:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容