在学习分布式系统时遇到的五个常见误解

这篇具有很好参考价值的文章主要介绍了在学习分布式系统时遇到的五个常见误解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哈喽大家好,我是咸鱼

我们知道,随着企业规模或者说业务规模的不断扩大,为了应对不断增长的业务需求和提高系统的可伸缩性、可靠性和性能,计算机系统由一开始的单体系统逐渐发展成分布式系统

那么今天咸鱼给大家介绍一些关于小白在学习分布式系统遇到的一些常见误解

误解1.网络是可靠的

在分布式系统中,任何特定的网络通信都是不可靠的,都可能会失败

比如说服务 A 与服务 B 进行通信,由于网络不稳定,导致它们之间的数据交换有丢失

这时候,我们就需要为系统提供一些解决方法来尽可能地保证服务 A 与服务 B 之间交换的数据不丢失

  • 重传机制

其中就包括重传机制,当网络通信出现问题时,可以通过重试机制来重新发送数据,直到数据被成功接收。重试机制可以提高数据传输的可靠性,但也会增加网络通信的负担

  • 消息队列

还有一种比较常见的解决方案就是存储和转发模式——数据并没有直接发送给下游服务器,而是将其存储在处在上下游之间的中间服务器上,下游服务器再去中间服务器上面取

看到这里,是不是觉得这个方案很熟悉

没错,它就是消息队列

在分布式系统中,可以采用消息队列来解决网络通信不可靠导致数据丢失的问题。消息队列可以将数据存储在队列中,等待接收方处理,以保证数据的可靠性

误解2.延迟为零

在分布式系统中,服务与服务之间有可能不仅仅是逻辑上的分布,还有可能是地理位置上的分布

那么就会出现服务与服务之间的通信有延迟,而且这种延迟是无法避免的,延迟可以说是任何网络请求的必须开销

通信延迟的主要原因包括数据传输的物理距离、网络拥塞、传输介质的带宽和传输协议等。由于光传播速度的限制,跨越较长距离的数据传输会导致一定的传输延迟

举个例子,假设一个电子商务平台的分布式架构包括前端应用服务器、商品服务和用户服务,它们分别部署在美国和中国两个地区的数据中心

当用户在中国访问该电商平台时,其请求需要经过国际互联网进行跨洲传输,可能会导致通信延迟增加。这种延迟会对用户体验产生影响,例如网页加载速度变慢或交互响应时间延长

现在比较常见的解决方案就是——内容分发网络(Content delivery networks, CDN)

误解3.网络是安全的

没有绝对安全的网络

在分布式系统中,网络存在不安全的情况是一个重要的问题。由于分布式系统的核心特点是通过网络进行通信和数据传输,网络的不安全性可能导致以下问题:

  1. 数据泄露:网络传输过程中,如果未加密或传输通道存在漏洞,敏感数据可能被截获或窃取,导致数据泄露的风险
  2. 数据篡改:网络中的攻击者可能截取、篡改或伪造数据包,对数据进行恶意篡改或操纵,从而影响系统的完整性和可靠性
  3. DOS 和 DDOS 攻击:网络中的攻击者可以通过拒绝服务(Denial of Service,DoS)攻击或分布式拒绝服务(Distributed Denial of Service,DDoS)攻击,使系统无法正常响应合法用户的请求,导致服务不可用
  4. 身份验证和授权问题:分布式系统中的各个节点需要相互进行身份验证和授权,以确保只有合法的用户或服务可以访问系统资源。网络不安全可能导致身份伪造、恶意访问和权限提升等问题

为了应对分布式系统中网络不安全的情况,可以采取以下安全措施:

  1. 加密通信:使用加密协议和算法对数据进行加密,确保在网络传输过程中数据的机密性和完整性。
  2. 身份验证和授权:采用安全的身份验证机制,例如使用证书、令牌或双因素认证等,验证用户或服务的身份,并为其分配适当的访问权限。
  3. 安全传输层协议(TLS):使用TLS协议保护网络通信,确保数据在传输过程中的安全性和完整性。
  4. 防火墙和入侵检测系统:在网络边界部署防火墙和入侵检测系统,监测和阻止恶意流量和攻击,保护系统免受未经授权的访问和攻击。
  5. 安全审计和日志监控:记录和监控系统的安全事件和活动,及时检测异常行为,并进行安全审计和调查。
  6. 安全更新和漏洞修复:及时更新和修补系统中存在的安全漏洞,确保系统的安全性和稳定性。

误解4.架构是一成不变的

分布式系统的架构通常是动态的,不是固定的

在分布式系统中,节点可以随时加入或退出,并且节点之间的连接关系可以发生变化

这样的好处是什么呢?

  • 弹性扩展

分布式系统的一个主要优势是能够根据需求进行弹性扩展。当系统负载增加时,可以通过添加更多的节点来分担负载

这种扩展可以是垂直的(增加节点的资源容量)或水平的(增加节点的数量),并且可以根据需要进行动态调整。这种灵活性使得系统能够适应变化的负载需求

  • 提高容错性

在分布式系统中,即使某个节点发生故障或断开连接,系统仍然能够继续运行(避免了单点故障)

其他节点可以接管故障节点的工作,并保持系统的可用性和稳定性。这种容错性使得分布式系统更加健壮和可靠

  • 数据冗余

为了提高系统的性能和可靠性,分布式系统通常会在不同的节点之间复制和存储数据的副本

副本(Replica)是分布式系统最常见的概念之一。当某一个节点上存储的数据丢失时,可以从副本上读取该数据以此来解决数据丢失的问题

误解5.传输成本为0

虽然分布式系统提供了节点之间的通信和数据交换能力,但实际上,这种信息传输是需要消耗资源和产生成本的

  • 带宽消耗

节点之间的信息传输需要利用网络带宽进行数据传输

带宽是有限的资源,因此在分布式系统中进行大量的数据传输会占用网络带宽,从而导致其他数据传输速度的下降或延迟

  • 网络延迟

信息在分布式系统中传输需要经过网络,而网络延迟是不可避免的

这包括了传输时间、传播时间以及在路由器和网络设备上的处理时间等

分布式系统中,节点之间的信息传输可能会受到网络延迟的影响,特别是当节点之间的地理位置较远时,通信延迟可能更高

  • 数据传输安全

在分布式系统中,确保信息传输的安全性是至关重要的

为了保护数据的隐私和完整性,可能需要采取加密、认证和访问控制等安全措施,这也会增加信息传输的成本和复杂性文章来源地址https://www.toymoban.com/news/detail-466238.html

到了这里,关于在学习分布式系统时遇到的五个常见误解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记20230629 -- 《分享在jsp分布式项目支援开发衍生功能时遇到和解决的问题》

    1.jsp项目的页面跳转,需要后端的java技术做支撑,在java的接口文件中写跳转接口,使用ajax去请求这个跳转接口,将返回的数据(html标签代码),放到当前页面或弹窗的\\\"content\\\"属性中 2.使用原生js写法实现 全选 功能和删除功能的逻辑思想 将每条回显数据的唯一id值作为每一条

    2024年02月11日
    浏览(104)
  • 什么是分布式系统,如何学习分布式系统

    正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包CAP理论,分布式储存与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统是“入门容易,深入难”,我之前的学习也只算是管中

    2024年02月13日
    浏览(44)
  • 高级分布式系统-第15讲 分布式机器学习--分布式机器学习算法

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 按照通信步调,大致可以分为同步算法和异步算法两大类。 同步算法下,通信过程中有一个显式的全局同步状态,称之为同步屏障。当工作节点运行到 同步屏障 ,就会进入等待状态,直到其工作节点均运行到同步屏障

    2024年01月18日
    浏览(46)
  • 高级分布式系统-第15讲 分布式机器学习--联邦学习

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 两种常见的架构:客户-服务器架构和对等网络架构 联邦学习在传统的分布式机器学习基础上的变化。 传统的分布式机器学习:在数据中心或计算集群中使用并行训练,因为有高速通信连接,所以通信开销相对很小,计

    2024年02月01日
    浏览(48)
  • 如何系统学习分布式?

    :想要走存储/数据库方向的话,具体路线是啥?重点需要掌握精通哪些知识? 回答 那我简单说一下走存储/数据库这块的学习路线吧。 目前做存储比较热门的是分布式存储方向,有NoSQL的也有关系型数据库的,比如腾讯就有TDSQL,PingCAP 也有TIDB、也有分布式KV存储TIKV。

    2024年02月16日
    浏览(45)
  • 高级分布式系统-第15讲 分布式机器学习--神经网络理论

    高级分布式系统汇总:高级分布式系统目录汇总-CSDN博客 模糊控制在处理数值数据、自学习能力等方面还远没有达到人脑的境界。人工神经网络从另一个角度出发,即从人脑的生理学和心理学着手,通过人工模拟人脑的工作机理来实现机器的部分智能行为。 人工神经网络(简

    2024年01月19日
    浏览(43)
  • 【学习笔记】minIO分布式文件服务系统

    1.1 minIO是什么? MinIO是专门为海量数据存储、人工智能、大数据分析而设计的对象存储系统。(早前流行的还有FastDFS) 据官方介绍,单个对象最大可存储5T,非常适合存储海量图片、视频、日志文件、备份数据和容器、虚拟镜像等。 采用golang语言编译 客户端和用户端交互采

    2024年02月07日
    浏览(41)
  • MIT 6.5840-分布式系统学习记录

    课程安排 2023 MIT 6.5840 分布式系统 | 环境搭建与 Lab 1 MapReduce - 知乎 (zhihu.com) lab汇总 MIT 6.5840-分布式系统 Lab1

    2024年03月18日
    浏览(46)
  • 【DDD分布式系统学习笔记】RPC调用以及系统初步搭建

    modelVersion: 模型版本,指定POM模型的版本,目前使用的是Maven 4.0.0版本。 groupId: 项目的组织标识符,通常是组织的域名倒序。在这里是 cn.itedus.lottery。 artifactId: 项目的唯一标识符,通常是项目的名称。在这里是 Lottery。 packaging: 项目的打包方式,这里是 pom,表示这是一个聚合

    2024年01月18日
    浏览(51)
  • 什么是Python爬虫分布式架构,可能遇到哪些问题,如何解决

    目录 什么是Python爬虫分布式架构 1. 调度中心(Scheduler): 2. 爬虫节点(Crawler Node): 3. 数据存储(Data Storage): 4. 反爬虫处理(Anti-Scraping): 5. 分布式通信和协调(Communication and Coordination): Python爬虫分布式架构代码示例 1. 调度中心(scheduler.py): 2. 爬虫节点(crawl

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包