分布式系统详解(二)--基础知识(概论)

摘要:
B组和C组属于分布式关系。分布式系统中最常见的概念之一是副本数据副本和服务副本。并发同一分布式系统的多个节点可以同时操作一些共享资源,例如数据库或分布式存储。大数据和分布式存储。其中提到了分布式存储的开源框架。

  一、 引言

        由于网上介绍的分布式的系统讲解并没有多少,所以在这儿就希望可以写一套系统的分布式的详解,未来也结合springboot的搭建分布式系统进行详细构建。也愿意坚持写下去,写给自己也分享给大家,希望大家可以提出宝贵的意见,一同长进。哈哈。。第一篇文章,开个头。

二、分布式定义。

  了解起来分布式呢,顺便也介绍一下集群,这两个概念和举例放在这里,让大家更能清楚的认识和知道。

(1)专业术语:

       分布式系统:是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

       分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。
       集群:同一个业务部署在多台机器上,提高系统可用性。

(2)举例讲解:

            

       摊煎饼卖煎饼,卖煎饼需要进行三道的工序:准备原料、加工、销售。主人A发现这样一天太累了,根本忙不过来,于是乎招人B准备原料,招人C来帮忙加工,这样主人A就可以之进行销售,B和C呢相对于A来说就是分布式;后来随着销量的增加,B和C忙不过来,又找了B1加入到准备原料,C1加入到加工小组。这样B和B1之间就是集群关系,C和C1之间也是集群关系。B小组和C小组属于分布式关系。

(3)图解更为清晰(网上搜刮的一张)

      分布式系统详解(二)--基础知识(概论)第1张

如果还是不清楚呢?推荐你一篇文章  分布式与集群的区别。

三、 集中式系统和分布式。

  如果上面的图解大家已经明白了,那么分布式和集中式也就相应的理解了。

        集中式系统:就是指由一台或多台主计算机组成中心节点,数据集中存储于这个中心 节点中,并且整个系统的所有业务单元都集中部署在这个中心节点上,系统所有的功能均由其集中处理。也就是说,集中式系统中,每个终端或客户端及其仅仅负责 数据的录入和输出,而数据的存储与控制处理完全交由主机来完成。

       传统的集中式处理模型越来越不能适应人们的需求:

(1)集中式系统如果进行大型项目的开发,改为大型主机,需要很昂贵的财力,这是一笔不小的开支。

(2)集中式系统运行在一台主机之上,如果这台主机出现故障,所有人都要等待这台主机的恢复。对于用户而言,什么也看不到了。

(3)安全度不高。如果被攻击,损失也是最大的。

        分布式系统:《分布式系统概念与设计》一书介绍到一个标准的分布式系统在没有特定逻辑的情况下,会表现出来的特性:

(1)分布性

       空间中随机分布。这些计算机可以分布在不同的机房,不同的城市,甚至不同的国家。

(2)对等性

       分布式系统中的计算机没有主/从之分,组成分布式系统的所有节点都是对等的。在分布式系统最常见的概念之一是副本--数据副本和服务副本。数据副本是指在不同的节点上持久化同一份数据,当某一个节点上存储的 数据丢失时,可以从副本上读取到该数据,这是解决分布式系统数据丢失问题最为有效的手段。服务副本,指多个节点提供同样的服务,每个节点都有 能力接收来自外部的请求并进行相应的处理。

(3)并发性

        同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储。

(4)缺乏全局时钟

       既然各个计算机之间是依赖于交换信息来进行相互通信,很难定义两件事件的先后顺序,缺乏全局始终控制序列。

(5)故障总会发生

       组成分布式的计算机,都有可能在某一时刻突然间崩掉。分的计算机越多,可能崩掉一个的几率就越大。如果再考虑到设计程序时的异常故障,也会加大故障的概率。

(6)处理单点故障

       单点SPoF(Single Point of Failure):某个角色或者功能只有某一台计算机在支撑,在这台计算机上出现的故障是单点故障。

当然处理方式可以是采用上面所讲的:集群。

四、如何设计分布式系统。

        说白了就是: 如何合理将一个系统拆分成多个子系统部署到不同机器上。

        将系统拆分成多个子系统,这就意味着拆分后的系统必然需要通过网络进行互相通信联系。所以通信中的稳定和安全也显得尤为重要。随着业务慢慢的增长,扩展性、可靠性、数据一致性都需要进行考虑。

(1)系统拆分成子系统。这个需要设计师好好设计,将一个大系统拆分成多个小系统,分层次来维护。

(2)设计系统间的通信。在这儿我们可以使用消息中间件,开源框架帮我们解决了这个问题。如Apache ActiveMQ、RabbitMQ、Apache RocketMQ、Apache Kafka等。

(3)设计分布式计算。开源框架有apReduce、Apache Hadoop、Apache Spark 等。

(4)大数据和分布式存储。有Apache HBase、Apache Cassandra、Memcached、Redis、MongoDB等。

(5)分布式监控控制。常用的技术包括Nagios、Zabbix、Consul、ZooKeeper等。

        这篇文章对于分布式系统进行了一个大体的讲解,在接下来的文章当中,文章还会继续对分布式有着更深入的讲解和分析,基础篇中会讲到一些关于 线程、通信、一致性、容错性、CPA等的认识,在之后其他篇中,还会讲到分布式架构体系、消息服务。分布式存储的开源框架均有讲到。文章慢慢更新中。。。

文献来源于:https://blog.csdn.net/mcb520wf/article/details/82456456

免责声明:文章转载自《分布式系统详解(二)--基础知识(概论)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue中引入第三方字体图标库iconfont,及iconfont引入彩色图标iOS10全新推送功能的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

win10点击“移动热点”无响应(已解决)

之前用电脑给手机开热点,直接点击右下角网络链接按钮,打开WLAN和移动热点就可以使用了。 今天突然发现这两个选项都没了,网上搜索一番后,重新启动了wirless适配器也不行。 进入到设置里发现点击“移动热点”选项没反应。 2019.8.9解决办法  以管理员身份打开windows powershell,输入netsh winsock reset回车,然...

国产CPU——兆芯(先开)KX-6640MA 使用感受

上半年买了个兆芯CPU的小mini电脑,一直没有换Windows系统,这两天想着就换了过来,具体配置如下:  1.  使用Python死循环代码烧机,性能和我14年买的i5-4200M的Intel CPU性能相当,虽然已经过去了7年,但是能到达这个水平说明国产CPU开个QQ、音乐、网页视频还是可以的。 2.  使用向日葵软件远程连接实验室服务器(远程桌面...

Hyper-V安装虚拟机

1、进入控制面板-程序,选择“启用或关闭Windows功能” 2、找到Hyper-V,勾选,重启电脑,即可 3、若是没有找到Hyper-V,如此操作 1)新建txt文件,输入以下内容: pushd "%~dp0"dir /b %SystemRoot%servicingPackages*Hyper-V*.mum >hyper-v.txtfor /f...

统筹学_百度百科

统筹学_百度百科 统筹学 随机型统筹图利用计算机进行模拟,计算出整体综合指标,或求出满意解。 广义网络图已被应用于阿波罗工程、公共设施的设计、多阶段决策、工程的总体可靠性分析、模拟技术等许多方面。 统筹学已成为较活跃的一个管理科学的分支。一方面,它的内容随着研究与应用的进行而不断丰富,它的应用范围与效果随着计算机的发展和广泛使用而不断扩大,形成了许多有效...

adb 环境配置 常用命令 [MD]

markdown 格式 博文地址 我的GitHub 我的博客 我的微信 我的邮箱 baiqiantao baiqiantao bqt20094 baiqiantao@sina.com adb简介 ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。...

Kafka — 高吞吐量的分布式发布订阅消息系统【转】

1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件?6.producer是否直接将数据发送到broker的leader(主节点)?7.Kafa consumer是否可以消费指定分区消息?8.Kafka消息是采...