目前在java软件开发行业,微服务和分布式也是愈发火热,那么你知道分布式架构主要是用来解决什么问题的吗?有兴趣的小伙伴们可以跟小编一起来瞧瞧看哦。
我们在分布式系统中,可能经常会碰到的技术性的名词,一般可以看到Replication、Partition、Consensus、Transaction等等这些,这些技术其实在分布式系统设计里面都是非常重要的。下面我们就一起来看看他们都是用来解决什么问题的吧。
Reliability,是指的是在任何情况下面,系统都是有正常工作的能力的。如果说一个系统在发生任何异常的时候,都能正常的工作的话,那么就说明该系统就是完全可靠的。其实在现实中,异常的种类是很多的,有的时候往往是难以事先避免的,为此,了解可能的异常并分析如何在异常发生的时候快速的去恢复也是非常重要的。一般来说,异常是包括硬件异常,软件异常跟人为异常的。
所谓硬件异常,其种类非常的多,硬盘,电源等等任意一个部件的损坏,都是可能导致服务器不能正常的工作的。通常这类的异常也是难以避免的,但是呢,我们也可以通过一些技术手段去实现异常发生后的快速的恢复,所以说不管是从软件角度还是说硬件角度,基本的解决思路其实都是冗余的。
那么从硬件角度来讲的话,也是可以通过单机冗余的多份硬件,就是当其中某个硬件发生异常的时候,我们是可以快速地用好的硬件换掉故障的硬件的,这种方式的硬件冗余对于数据中心级的故障其实是没有作用的;那么从软件角度来讲,我们也是可以通过多副本去实现快速恢复的,就是当某台服务器硬件异常时,我们可以在软件层面把流量导入到新的副本上,除了Replication之外呢,有的时候为了去减少单台的服务器故障对所有用户的影响,也可以对用户数据做Partition,单台服务器的话只是存某一部分的用户的数据,这样的话单机故障就只会影响一部分用户了。
最后是软件异常,软件异常一般指的是系统里面的bug,这里面不仅仅包括自己写的系统的bug,通常也会包括依赖的服务系统里面的bug。
好了,那么以上就是本篇文章的全部内容了,还想了解更多java架构师相关信息记得关注本站消息,更多精彩内容等你来解锁。
推荐阅读: