分布式系统服务器要求,浅谈分布式系统

分布式系统的由来

软件系统的架构一直以来随着技术的发展和市场的需求进行着不断的演进。最初,各行业业务相对比较简单,对系统的要求也不高,软件系统的架构均采用单一应用架构,此时单台服务器即可满足系统的要求。

之后,随着业务的发展,对系统的要求不断提升,单台服务器已经无法满足系统各方面的要求,最初只能使用横向扩展的方式进行处理,部署另外一台一样的服务器来均摊压力,即使用集群方式扩展。集群可保证两台或者更多服务器拥有同样的能力来分摊系统压力,但也造成了服务器资源的浪费,因为系统的压力可能只来自于某个模块,但集群部署时需要部署整个系统。

随着互联网的爆发,各个领域对于系统的依赖度和要求也水涨船高,集群虽然可以完成压力的分摊,但随着集群规模的扩大,资源浪费也越来越大,而且出现单台服务器无法支撑系统功能的情况,此时便需要多台服务器协作来完成此功能,也就是我们平时说的分布式系统。

与集群的区别

分布式与集群的目标是一致的,都是使用多台服务器来分摊系统压力,都有众人拾柴火焰高的意思。区别在于,集群是多台服务器一起干一件事,可以比作所有人都在拾柴点火;分布式是多台服务器协作完成一件事,可以比作有的人砍柴,有的人运柴火,有的人点火;关键点在于集群中所有服务器提供的服务一样,分摊压力,而分布式系统中每台服务器提供不一样的服务,多点协作。

集群演示如下:

d3cc1f54c7c7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

集群演示图

分布式演示如下:

d3cc1f54c7c7?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

分布式演示图

优点

增加可靠性和可维护性

分布式系统各模块之间耦合程度较低,一台服务器出现问题不至于整个系统崩溃,进行故障处理时可只针对需要改变的模块,其他模块不受影响

提升扩展性

分布式系统可根据需求增加某个服务的服务节点,相较于单一应用架构的集群扩展,分布式系统的扩展更灵活、更便捷。

提升系统性能

分布式系统可利用多台服务器的资源处理同一问题,性能更好,而且相较于单一应用来说,分布式系统的各模块之间不会出现相互抢占硬件资源的问题

缺点

网络设施要求高

分布式系统各模块之间的交互是通过网络来进行的,意味着各模块的功能能否正常运行不仅仅取决于模块是否可运行,还需要看网络是否正常,所以分布式系统对网络设施要求比较高

调试难度大

分布式系统的功能使用多台服务器进行处理,相对于单一应用架构,如果出现问题,调试难度要增加不少

运维难度大

传统的单一应用架构服务器或容器使用较少,且对网络依赖程度低,而分布式架构服务器更多、对网络依赖程度更高,运维过程中问题相对于单一架构来讲更多且更复杂。

适用范围

如果系统包含一下某个情况则需要考虑使用分布式架构

根本性的一点,系统对硬件资源要求非常高,单台服务器无法满足某个模块的要求。

系统需要灵活的扩容,且不影响现有业务进行

系统要求较高的可维护性及可用性,更新某个服务时不能影响其他服务运行

使用集群进行扩展时规模较大,成本高于采用分布式

较多情况下,系统要求逼格高!!!国内挺多客户认这一套,不用分布式招标拿不到,这种情况还是可以考虑使用分布式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OCP Java 自测

一个朋友准备去考OCP Java认证,即原来的SCJP。心血来潮也想测测自己什么水平。找了本McGraw.Hill.OCP.Java.SE.6.Programmer.Practice.Exams,开盘就是两套自测题。14个题目,给了42分钟,按书中说法是过了8个就可以去考了。掐上秒表…

内核该怎么学?Linux进程管理工作原理(代码演示)

前言:Linux内核里大部分都是C语言。建议先看《Linux内核设计与实现(Linux Kernel Development)》,Robert Love,也就是LKD。Linux是一种动态系统,能够适应不断变化的计算需求。Linux计算需求的表现是以进程的通用抽象为中心的。进程可以是短期…

如果访问云服务器上的文件,如果访问云服务器上的文件

如果访问云服务器上的文件 内容精选换一换WinSCP工具可以实现在本地与远程计算机之间安全地复制文件。与使用FTP上传代码相比,通过 WinSCP 可以直接使用服务器账户密码访问服务器,无需在服务器端做任何配置。通常本地Windows计算机将文件上传至Linux服务…

int *p = *******a是什么鬼?

这是在朋友圈里面看到有人调侃的一个C语言题目,这里拿出来分享给大家看看。1我们知道int a 120; int* p &a;这样我们可以给指针p赋值。指针很多初学者学习的时候会觉得一脸懵逼,我们只要明白几个关键的东西,会让我们对指针理解更深入一…

你见过的MCU最高GPIO翻转频率是多少?

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率。上一篇文章 《聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法》,痞子衡从原理上介绍了 i.MXRT1xxx 系列里普通 GPIO 和 …

django中的admin组件之自定义组件的增删改查的完善

昨天我们将自定义列放在类我们自定义的Bookconfig配置类内,但是这样就写死了,因为当我们访问publish表的时候应该也有这样的自定义列,所以我们应该将我们的自定义列放在默认的配置表里面。应该怎么做? 当我们的自定义列挪到默认配…

“制造商和技术支持商”

1.用优化工具。 2.system32中的OEMINFO.ini和OEMLOGO.bmp文件 转载于:https://blog.51cto.com/honglingjin2011/537680

青春是一列不再回头的火车…

高中那年,我表姐对我说:“不要老想着出去打工赚钱,好好读书,将来肯定有用,也不要想着现在日子长得很,等你像我这样结婚生子后,一天一眨眼就过完了。”当时听了没有多大感觉,如今深以…

我和周立功的聊天

算起来,我和周工认识也有7年了,7年前我在中兴,偶然一次加了周工的微信,有一次年末,周立功在推广他们的示波器,广哥拉我进周立功的示波器技术支持群微信群,说是周工要给大家发红包。那时候&#…

Python 37 进程池与线程池 、 协程

一:进程池与线程池 提交任务的两种方式: 1、同步调用:提交完一个任务之后,就在原地等待,等任务完完整整地运行完毕拿到结果后,再执行下一行代码,会导致任务是串行执行 2、异步调用:提…

在腾讯做嵌入式是怎么样的

昨天发朋友圈,是我帮忙同学拍的几张照片,自己觉得拍的不错,点赞的人还挺多的,就想着聊聊在腾讯做嵌入式软件开发的情况。我面试的BSP驱动开发工程师,入职后也从事这方面的事情,但是并不仅仅是BSP驱动。现在…

NFS无法启动根文件系统的解决

为了调试驱动,整了一天的NFS启动根文件系统出了各种问题,后来还是一一解决,不过还不太完美,因为不能使用交换机,我只能用PC和目标板直连,导致我上网很麻烦 无法挂载问题一: IP-Config: Cannot a…

聊聊身边的嵌入式,为什么老司机都爱后视镜

为什么老司机都爱后视镜有句话形容我们老司机的成长过程,叫:一年虎,二年狼,三年变成小绵羊。如果你不懂这句话的意思,证明你还不是一个合格的老司机。如果没和别人发生过亲(Gua)密(Ceng)接(Shi)触(Gu),算得…

HDU 2187 悼念512汶川大地震遇难同胞——老人是真饿了

http://acm.hdu.edu.cn/showproblem.php?pid2187 Problem Description时间:2008年5月16日(震后第4天)地点:汶川县牛脑寨人物:羌族老奶奶【转载整理】牛脑寨是一个全村600多人的羌族寨子,震后几天&#xff…

第六次周赛

失望…… B题其实很简单&#xff0c;完全有能力出&#xff0c;我和luyi陷在我一个错误的树DP模型中…… 其实就是几个简单的组合数&#xff0c;谁可以都会的问题。 PROBLEM B 1 #include <iostream>2 #include <algorithm>3 #include <cstring>4 #include &l…

博主日常工作中使用的shell脚本分享

前言&#xff1a;今天给大家分享一篇在我工作中常用的一个shell脚本&#xff0c;里面有一些我们常用到的shell操作。该脚本用于本地电脑和服务器交互上&#xff0c;实现以下功能&#xff1a;自动拉取自己个人电脑上的源码到服务器上yocto包的源码文件夹。自动运行compile 、str…

JSON数据提取

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。JSON在数据交换中起到了一个载体的作用&#xff0c;承载着相互传递的数据。JSON适用于进行数据交互的场景&#xff0c;比如网站前…

陆奇给工程师们的5个建议

大家好&#xff0c;我是写代码的篮球球痴今天分享的文章是陆奇以前在百度一次内部演讲给工程师们提的5点要求&#xff0c;个人觉得对很多人非常有益&#xff0c;大家可以耐心一读。至于陆奇是谁&#xff0c;可以直接搜索&#xff0c;借微软CEO斯蒂芬鲍尔默对他的评价 : 陆奇集资…

每个电子工程师都埋藏着一颗游戏的心

在电子森林推文 700个字节的代码在ATtiny10里跑一个游戏[1] 介绍了一个 开源小游戏RunTiny[2] .用了&#xff1a;一个AVR单片机ATtiny10微控制器&#xff08;只有6个脚&#xff0c;Digikey上0.3美元一颗&#xff09;一个128*32的OLED显示屏一个按键一个电池 - 3.3V&#xff5e;…

Linux kernel 中模块化的平台驱动代码介绍

介绍在linux kernel中通过module_platform_driver来实现模块化平台驱动。大量的设备驱动程序都基于该种方式来实现&#xff0c;使用频次非常的高&#xff0c;在linux kernel 5.4.124的代码中搜索module_platform_driver共有2356次引用。这个宏的使用方式大相径庭&#xff0c;有…