博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
架构设计之高可用
阅读量:4293 次
发布时间:2019-05-27

本文共 747 字,大约阅读时间需要 2 分钟。

猫眼架构 2017-12-14 23:27:05

接入层

端到接入层,最好通过域名,而不是ip直连。当提供服务的ip,不可用时,可以通过切换dns更换入口。

接入层冗余部署,nginx通过统一的ip(虚拟ip)对外服务,多台Nginx采用keepalive检测,当对外提供服务的nginx挂了,通过把ip切换给备用机器,实现故障转移。

接入层到ui层

接入层到ui层也是通过部署冗余的ui层服务实现,接入层nginx上配置失败检测和转移,当nginx发现某个ui层机器挂了,自动将失败请求转移别的ui机器,并且隔离失败的机器。

UI层到服务层

部署冗余的服务层,ui层每次请求随机请求其中一个服务,并且在失败的情况转移到其他服务,请求种可异步统计每个服务的响应时间,服务可用率,可以设置阈值,当请求平均耗时比如超过100毫秒时,认为这个机器已经超载,减少权重,减少到该机器的流量,当连续失败次数达到一定值认为服务不可用,隔离该服务。

服务层到存储层

redis可以部署集群,利用哨兵机制实现高可用,也可以部署codis集群实现高可用。

mysql可以部署mha或者类似的高可用服务,当主卦了,会自动提升有最新数据的从作为主,当有从服务不可用时自动隔离。

多机房冗余

单机房无论多么冗余,多么牛逼,当施工队靠近,自然灾害发生,还是面临不可用,这时我们需要部署多机房高可用,服务多机房同活很容易,但是对于需要持久化的存储层则需要采用光纤直连,设置保证分布式多机房的情况,至少保证其中两个机房事务已经落盘,才返回给用户成功。当然会牺牲部分速度。

总结

高可用是架构设计上必须考虑的问题,主要是指减少系统因为某些不可抗拒原因带来的不可用时间。方法论:冗余部署+自动故障转移+自动服务降级+自动服务隔离等

架构设计之高可用

转载地址:http://tbzws.baihongyu.com/

你可能感兴趣的文章
期货市场技术分析05_交易量和持仓兴趣
查看>>
TB交易开拓者入门教程
查看>>
TB创建公式应用dll失败 请检查用户权限,终极解决方案
查看>>
python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
查看>>
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>
满屏的指标?删了吧,手把手教你裸 K 交易!
查看>>
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
X 分钟速成 Python
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
网格马丁格尔交易法
查看>>
TA-LIB 200多个技术指标含有及计算式
查看>>
一行代码让 Python 的运行速度提高100倍
查看>>
一行 Python 实现并行化 -- 日常多线程操作的新思路
查看>>
期货市场的运作机制
查看>>
一文精通 crontab从入门到出坑
查看>>
股票连续跌停后开板表现
查看>>
东航期货行情接口和交易接口(20190509)
查看>>