美文网首页
Marathon-LB实现服务限流

Marathon-LB实现服务限流

作者: 761eebae5903 | 来源:发表于2017-08-07 14:21 被阅读0次

    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连接。如下图所示:

    相关文章

      网友评论

          本文标题:Marathon-LB实现服务限流

          本文链接:https://www.haomeiwen.com/subject/woxalxtx.html