讲为什么要学习数据结构和算法 IT教程

讲为什么要学习数据结构和算法

你是不是觉得数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识?可能除了面试,这辈子也用不着? 尽管计算机相关专业的同学在大学都学过这门课程,甚至很多培训机构也会培训这方面的知识,但是据...
阅读全文
弹力设计篇之“弹力设计总结” IT教程

弹力设计篇之“弹力设计总结”

我们前面讲了那么多的弹力设计的设计模式,这里做个总结。 弹力设计总图 首先,我们的服务不能是单点,所以,我们需要在我们的架构中冗余服务,也就是说有多个服务的副本。这需要使用到的具体技术有: 负载均衡 ...
阅读全文
弹力设计篇之“降级设计” IT教程

弹力设计篇之“降级设计”

所谓的降级设计(Degradation),本质是为了解决资源不足和访问量过大的问题。当资源和访问量出现矛盾的时候,在有限的资源内为了能够扛住大量的请求,我们就需要对我们的系统进行降级操作。也就是,暂时...
阅读全文
弹力设计篇之“限流设计” IT教程

弹力设计篇之“限流设计”

保护系统不会在过载的情况下导致问题,那么,我们就需要限流。 我们在一些系统中都可以看到这样的设计,比如,我们的数据库访问的连接池,还有我们的线程池,还有 nginx 下的用于限制瞬时并发连接数的 li...
阅读全文
弹力设计篇之“熔断设计” IT教程

弹力设计篇之“熔断设计”

熔断机制借鉴于我们电闸上的 " 保险丝 ",当电压有问题时(比如短路),自动跳闸,此时电路就会断开,我们的电器就会受到保护。不然,会导致电器被烧坏,如果人没在家或是人在熟睡中,还会导致火灾。所以,在电...
阅读全文
弹力设计篇之“重试设计” IT教程

弹力设计篇之“重试设计”

关于重试,这个模式应该是一个很普遍的设计模式了。当我们把单体应用服务化,尤其是微服务化掉,本来在一个进程内的函数调用就成了远程调用,这样就会涉及到网络上的问题。 网络上有很多的各式各样的组件,如:DN...
阅读全文
弹力设计篇之“补偿事务” IT教程

弹力设计篇之“补偿事务”

前面,我们说过,分布式系统有一个比较明显的问题就是,一个业务流程需要组合一组服务。这样的事情在微服务下就更为明显了,因为这需要业务上的一致性的保证。也就是说,如果一个步骤失败了,那么要么回滚到以前的服...
阅读全文