分布式系统的那些事儿(五) - 容错与故障

我们都经历过巨石应用,单一应用某个功能诱发的故障导致整个站点挂掉,任何人都无法访问,只能一一排错再部署上线,这样造成的影响就是用户的流失。而分布式应用就没有这样的问题,就算某个节点出现故障,那么主备切换,替换主节点,整个系统还是照样运行,完全没有访问不了的现象。

要使系统达到一定的容错性,那么

首先要实现的就是高可用,最简单的就是进行节点集群化,使用心跳机制让好的节点替换坏的节点。

其次要保证系统的稳定性,如果运维有事没事上去重启一次,这样也不太好吧(其实很多应用在一开始都是每周重启一次的)

然后整个系统平台的安全性当然要提高,比如防CSRF攻击,防IIS攻击等等,安全性一旦提高系统崩溃的几率也相应降低。

最后就是系统的可维护性,这个在我看来是最高级别的,一旦系统难以维护,那么开发人员以及运维人员的工作量是巨大的,甚至会出现有人不想维护而离职不干,这都是会发生的情况,所以一个系统的可维护性非常考验架构师的能力。

对于故障的分类有代码级别的,也有硬件方面的,硬件的故障咱们姑且不说,而代码方面的故障我们要做的就是日志分析了,设置好日志级别,在很多发生业务的地方会产生大量的日志,这个时候就需要ELK来进行分析了,通过日志来解决代码放的bug,也是必要的。

时间: 2024-11-07 06:02:24

分布式系统的那些事儿(五) - 容错与故障的相关文章

分布式系统的那些事儿(六) - SOA架构体系

有十来天没发文了,实在抱歉!最近忙着录视频,同时也做了个开源的后台管理系统LeeCX,目前比较简单,但是后续会把各类技术完善.具体可以点击"原文链接". 那么今天继续说分布式系统的那些事. 我们现在动不动就讲分布式吧?那么SOA是不是必须得聊一聊呢? 面向服务的架构,简称SOA,他是基于服务组件的,把原来那种一个大型应用程序的不同的功能拆分为一些接口,通过这些接口串联起来. 这么做的好处是: 1.重用性大大提高 2.明确了接口的服务定义规则 3.定义了自家公司的api标准 4.降低系统

分布式系统的那些事儿(三) - MQ时代的通信

之前在讲RPC通信的各种好处,特别好用,但是RPC并不是万能的,也并不是适用于各种场景的,因为他是同步的:现如今很多场景下的调用都是异步的,系统A调用B后,并不需要知道B的结果,而且对B的结果无所谓,甚至你B挂了都无所谓,那么这个时候使用消息队列是十分OK的. 最简单的场景就是发送短信和email,主机不需要知道是否发送成功与否,就算失败了,哪怕再发一次也无所谓. 常见的MQ主要有JMS,RabbitMQ,ActiveMQ,Kafka以及RocketMQ,值得一提的是RocketMQ是阿里出的开

经验篇第五期:群里的那点事儿(五)

问题1:关于隐藏NavigationBar出现小黑屏的BUG 问题2:关于TableView的footerView问题 问题3:关于设置textField的字数限制问题 好啦,本期的问题解答就这么多哦,欢迎小伙伴们来群里提问,帮比人解答问题哦

分布式系统的那些事儿(三) - 系统与系统之间的调用

系统与系统之间的调用通俗来讲,分为本地同一台服务器上的服务相互调用与远程服务调用,这个都可以称之为RPC通信.浅白点讲,客户访问服务器A,此时服务器要完成某个动作必须访问服务器B,服务器A与B互相通信,相互调用,A访问B的时候,A挂起,等待B的响应,B响应返回相应的数据个A,A再返回给用户,这就是一个很简单的栗子. 举个常见栗子,用户上传图片,用户上传图片首先会经过自身的服务器,然后再对图片进行处理,此时图片处理放在图片服务器中进行,那么我们只需要调用图片服务器提供的接口即可,然后等待响应返回的

分布式系统实战

导言:记得在自己大学毕业的2006年到之后近五年的工作里,源于工作经历和有限的视野,几乎对"分布式系统"没有任何概念.当然,彼时的互联网/移动互联网还未对我们的生活呈覆盖颠覆之势,很多网络应用采用传统的集中式服务便可应对.但是随着互联网大潮的风起云涌,出现了越来越多的细分大流量网站及应用,网民体量也如滚落雪球一般越来越大,这种情况下分布式的概念几乎在技术圈"家喻户晓",也成了我们追逐的另一颗时代"银弹".我也不例外,但是只是因为身处于某几乎无互联

分布式系统之故障检测及恢复

数据分布和数据读写问题已经大致了解了,现在咱讲讲异常情况的处理.老规矩先讲讲单机系统的故障恢复的解决方案. 一.单机系统的故障恢复 单机程序可能因为程序bug.宕机等因素导致进程死掉.当进程重启时,往往希望服务能恢复到原来的一致状态.状态的恢复依赖数据和日志.在此我们假设磁盘是OK的(否则无法恢复),即原数据问题暂不考虑,So我们需要考虑的是操作的重现. 1.操作日志:不论是传统的关系型数据库或者近几年比较火的NoSQL,操作日志都是这些系统必备的故障恢复手段. a) 操作日志的形式:传统的关系

(转)分布式系统原理

分布式系统原理 一.分布式系统基础重要要点: 对外提供无状态节点,内部实现具体有状态或者无状态节点逻辑,节点即可以是提供服务,也可以是存储数据. 拜占庭问题,在分布式系统中的使用,目的是保证服务可用,而不是找出错误的节点,如果. 异常常见情况,机器宕机.网络异常.消息丢失.消息乱序.数据错误.不可靠的TCP.可能是收到消息后宕机.也可能是处理完成以后机器宕机.处理完成任务后发送确认消息是网络异常.也有可能是发出去的消息丢失,或者发送确认消息时丢失.可能先发送出去的数据后收到 分布式状态.成功.失

浅析分布式系统

作者:wadehan,腾讯后台开发高级工程师 本文转载自 腾讯云技术社区--腾云阁 https://www.qcloud.com/community. WeTest导读 我们常常会听说,某个互联网应用的服务器端系统多么牛逼,比如QQ.微信.淘宝.那么,一个互联网应用的服务器端系统,到底牛逼在什么地方?为什么海量的用户访问,会让一个服务器端系统变得更复杂?本文就是想从最基本的地方开始,探寻服务器端系统技术的基础概念. 承载量是分布式系统存在的原因 当一个互联网业务获得大众欢迎的时候,最显著碰到的技

部署SQL Server2008 R2故障转移群集

配置Sql Server故障转移集群 环境:使用VMware 12虚拟机搭建环境 系统 网卡及IP配置 服务 Windows Server 2008 R2 IP:192.168.1.1 GW:192.168.1.1 DNS:192.168.1.1 搭建域控制器为abc.com Windows Server 2008 R2 网卡1: IP:192.168.1.2 GW:192.168.1.1 DNS:192.168.1.1 网卡2: IP:172.16.10.1(心跳网络) 网卡3: IP:192