ITPub博客

首页 > > > 你女朋友是高可用么?

你女朋友是高可用么?

作者:孤独键客 时间:2020-05-13 11:52:41 0 删除 编辑

                         

点击上方“程序员的成长之路”,选择“置顶公众号”

技术文章第一时间送达!


阅读本文大概需要 2.8 分钟。


最近看到了关于分布式系统的概念,及其通俗易懂,看完你绝对有大的收获。


分布式系统的概念,技术来源于恋爱,又高于恋爱


1、高可用:就算失恋了,可以迅速和另一个女生恋爱,永远不会是单身状态。


2、注册中心:你和你女朋友去民政局登记,民政局就是注册中心,掉线的代价就是离婚。


3、负载均衡:你和多个女朋友轮流约会。星期一,三,五跟A约会,二,四,六和B约会,叫RoundRibon算法。


4、熔断限流:跟多个女朋友约会,你身体吃得消么?你要保护自己,星期天就好好休息。


5、API网关:相亲前的媒婆,你和女生不会直接交流,由媒婆代为传递信息。


    6、雪崩:无法正确处理好几个女朋友的恋爱关系,很可怕的。


7、阻塞:本来和A约会,A有事没来,B又急切想和你约会,但你赶不过去。


8、同步:一次只和一个女生约会;

     异步:一次和好几个女生约会。


9、异步线程不安全:一次和好几个女生约会当然不安全,弄不好连名字都叫错。


10、分布式锁:同时和好几个女生约会的时候,保证不会被其他女生撞见。


11、分布式缓存:你有钱,房间开了一个月,每次约会直接去好了,不需要重新开房。


12、分布式消息队列:你一约她,她就来。每次结束后,她会主动离开,你不call她,她也不会来。


13、分布式事务:当你离婚后很痛苦,希望没和她结婚过,希望没和她生过孩子,一切希望回到婚前的模样。所以,分布式事务很难。


14、异地多活:你出差到任何城市,都有女朋友跟你约会。



看完之后,你对分布式系统的概念知识有没有很深刻的理解呢!


这里特别官方介绍一下分布式系统,万一陷入故事情节就不好了,因为我身边就有朋友在面试的时候,面试官问一个问题,他用故事的形式来表示,结果面试官不接受....,非得说着不行,只好用专业术语讲解一遍才过关。


百度百科解释:


分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。


分布式系统背景


说分布式系统必须要说集中式系统,集中式系统中整个项目就是一个独立的应用,整个应用也就是整个项目,所有的东西都在一个应用里面。


如下图所示



如一个网站就是一个应用,最后是多个增加多台服务器或者多个容器来达到负载均衡的避免单点故障的目的,当然,数据库是可以分开部署的。


集中式很明显的优点就是开发测试运维会比较方便,不用为考虑复杂的分布式环境。


集中式很明显的弊端就是不易扩展,每次更新都必须更新所有的应用。而且,一个有问题意味着所有的应用都有问题。当系统越来越大,集中式将是系统最大的瓶颈。


什么是分布式系统?

分布式系统是若干独立计算机的集合,这计算机对用户来说就像单个相关系统。


以上定义摘自<<分布式系统原理与范型>>一书。


也就是说分布式系统背后是由一系列的计算机组成的,但用户感知不到背后的逻辑,就像访问单个计算机一样。


说的有点绕,我们可以来简单看下分布式系统图。



分布式系统利弊

在分布式系统中:


1、应用可以按业务类型拆分成多个应用,再按结构分成接口层、服务层;我们也可以按访问入口分,如移动端、PC端等定义不同的接口应用;


2、数据库可以按业务类型拆分成多个实例,还可以对单表进行分库分表;


3、增加分布式缓存、搜索、文件、消息队列、非关系型数据库等中间件;


很明显,分布式系统可以解决集中式不便扩展的弊端,我们可以很方便的在任何一个环节扩展应用,就算一个应用出现问题也不会影响到别的应用。


随着微服务Spring Cloud & Docker的大热,及国内开源分布式Dubbo框架的重生,分布式技术发展非常迅速。


分布式系统虽好,也带来了系统的复杂性,如分布式事务、分布式锁、分布式session、数据一致性等都是现在分布式系统中需要解决的难题,虽然已经有很多成熟的方案,但都不完美。


分布式系统也增加了开发测试运维成本,工作量增加,分布式系统管理不好反而会变成一种负担。


如果你觉得文章不错,可以随手点赞、转发,赞赏。

当然赞赏的价格随意,主要是心意,因为你的每次点击都是对我最大的支持,也是我持续输出的动力。



END


扫一扫

关注我们


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69902700/viewspace-3166739/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
一个不羁的码农,终身学习者。公众号「程序员的成长之路」。目前就职于一家游戏公司,主要负责服务器端,以及web系统的开发工作,对Java相关知识比较擅长。

注册时间:2018-12-14

  • 博文量
    793
  • 访问量
    119763