首页 > 其他 > 详细

动态流量切换路由降级方案

时间:2016-04-14 02:05:52      阅读:326      评论:0      收藏:0      [点我收藏+]

? ? ? ??1.整体架构方案

?

bubuko.com,布布扣
?
?
?
2.分解决执行
?
2.1动态流量切换选择模块ngx_dynamic_upstream,api+python方式(直接操作upstream里的server)
因为api接口操作不是太直观,在django上以web方式增删查改upstream ?
?

HTTP APIs

You can operate upstreams dynamically with HTTP APIs.

list

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends"
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
$

verbose

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&verbose="
server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10;
$

update_parameters

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&weight=10&max_fails=5&fail_timeout=5"
server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6003 weight=10 max_fails=5 fail_timeout=5;
$

The supported parameters are blow.

  • weight
  • max_fails
  • fail_timeout

down

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&down="
server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10 down;
$

up

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&up="
server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10;
server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10;
$

add

$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&add=&server=127.0.0.1:6004"
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
server 127.0.0.1:6004;
$

remove

$?curl?"http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&remove=&server=127.0.0.1:6003"
server?127.0.0.1:6001;
server?127.0.0.1:6002;
server?127.0.0.1:6004;
?
reference:
?
2.2 路由方案nginx+lua+api
1.制定路由规则
2.对外提供路由api(权限控制,暂时只提供get)
3.一键持久化redis数据,一键回复redis数据
4.冗余,容错机制
?
封装redis路由,restful api

bubuko.com,布布扣
?
?
2.3应用降级
? ? ?高流量,大并发等异常情况处理。
? ? ?这个方案的思路是跟前两个方案有两个内存关联,根据不同的场景,组合不同的操作细则

动态流量切换路由降级方案

原文:http://hugoren.iteye.com/blog/2289960

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!