【分部式架构】分布式系统的挑战

设计一个分布式系统并不是那么简单和直接。为了得到理想的系统,需要克服许多挑战。分布式系统面临的主要挑战如下:

1934ab0a56dceb1d53cfef1299567baa.png

1. 异构性:

因特网使用户能够在异构的计算机和网络集合上访问服务和运行应用程序。异质性(即多样性和差异性)适用于以下所有情况:

  • 硬件设备:电脑、平板电脑、移动电话、嵌入式设备等

  • 操作系统:Ms Windows, Linux, Mac, Unix等

  • 网络:局域网、因特网、无线网络、卫星链路等。

  • 编程语言:Java, C/ c++, Python, PHP等

  • 软件开发人员、设计人员、系统管理人员的不同角色

不同的编程语言对字符和数据结构(如数组和记录)使用不同的表示。如果要使用不同语言编写的程序能够相互通信,就必须解决这些差异。由不同的开发人员编写的程序不能相互通信,除非它们使用共同的标准,例如,用于网络通信和

消息中基本数据项和数据结构的表示。为了实现这一点,标准需要得到认可和采用——正如互联网协议一样。

中间件:术语中间件适用于软件层,该层提供了编程抽象,同时掩盖了底层网络、硬件、操作系统和编程语言的异构性。大多数中间件都是通过Internet协议实现的,Internet协议本身掩盖了底层网络的差异,但是所有中间件都处理操作系统和硬件的差异

异构性和移动代码:术语移动代码是指可以从一台计算机转移到另一台计算机并在目的地运行的程序代码——Java applet就是一个例子。适合在一台计算机上运行的代码不一定适合在另一台计算机上运行,因为可执行程序通常都是特定于指令集和主机操作系统的。

2. 透明度:

透明性被定义为对用户和应用程序程序员隐藏分布式系统中的组件分离,这样系统就被视为一个整体,而不是独立组件的集合。换句话说,分布式系统设计者必须尽可能地隐藏系统的复杂性。分布式系统透明度的一些术语是:

  • Access隐藏了数据表示和资源访问方式的差异

  • Location隐藏资源所在的位置

  • 迁移隐藏了资源可能移动到另一个位置

  • 重定位隐藏资源在使用时可能移动到另一个位置

  • 复制隐藏可能在多个地方复制的资源

  • 并发性隐藏了一个资源可能被几个竞争性用户共享的情况

  • Failure隐藏资源的失败和恢复

  • 持久性隐藏(软件)资源是在内存中还是在磁盘中

3.开放

计算机系统的开放性是决定该系统能否以各种方式扩展和重新实现的特征。分布式系统的开放性主要取决于添加新资源共享服务的程度,以及各种客户机程序可以使用的程度。如果发布了系统定义良好的接口,开发人员将来就更容易添加新特性或替换子系统。例如:Twitter和Facebook都有API,允许开发者交互式地开发他们自己的软件。

4. 并发性

服务和应用程序都提供了分布式系统中客户机可以共享的资源。因此,可能会有多个客户机同时尝试访问共享资源。例如,记录拍卖出价的数据结构在接近截止时间时可能会被频繁访问。为了使对象在并发环境中是安全的,必须以使其数据保持一致的方式对其操作进行同步。这可以通过在大多数操作系统中使用的信号量等标准技术来实现。

5. 安全

分布式系统中提供和维护的许多信息资源对其用户具有很高的内在价值。因此,他们的安全相当重要。信息资源的安全包括三个部分:

保密(防止泄露给未经授权的个人)

完整性(防止变更或腐败),

被授权的可用性(防止对访问资源的方式的干扰的保护)。

6. 可伸缩性

随着用户数量的增加,分布式系统必须是可伸缩的。可伸缩性由B. Clifford Neuman定义为

如果一个系统能够处理用户和资源的增加,而不会造成明显的性能损失或管理复杂性的增加,那么这个系统就是可伸缩的

可伸缩性有3个维度:

  • 大小需要处理的用户和资源数。相关的问题是重载

  • 地理位置用户与资源之间的距离。相关的问题是通信的可靠性

  • 管理随着分布式系统规模的增加,许多系统需要被控制。相关的问题是管理混乱

7. 故障处理

电脑系统有时会失灵。当硬件或软件发生故障时,程序可能产生不正确的结果,或可能在完成预期的计算之前停止。处理失败尤其困难。

本文http://jiagoushi.pro/challenges-distributed-system
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
bb78bdfeda8284f845be996ee0b18c48.png
微信小号

【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

9aafd2b7726b2c6ed7a9d99b7e88e751.png

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

f92652139aeeac0c6059f86d959060d3.png

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

36250723b36a96e25de4d544371cabc6.png

知识星球向大咖提问,近距离接触,或者获得私密资料分享。

b7a357bc09949f76a5d3173ab2dd1a44.png

喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【智能时刻】智能时刻
哔哩哔哩【超级架构师】

90ae347fb51624d27f1d45d5e902baa5.png

抖音【cea_cio】超级架构师

b2f05da453150af05872c005bc74eb51.png

快手【cea_cio_cto】超级架构师

598a79a0a68682a0bd486f7f3fcf56b8.png

小红书【cea_csa_cto】超级架构师

a6a7250a7d78eef705309e6e4b2cc23c.png




谢谢大家关注,转发,点赞和点在看。



4fe920a98560b412869bfaa7124f0f8a.png

知识星球向大咖提问,近距离接触,或者获得私密资料分享。知识星球【首席架构师圈】
微信圈子志趣相投的同好交流。微信圈子【首席架构师圈】
喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【智能时刻】智能时刻
哔哩哔哩【首席架构师智库】
抖音【cea_csa_cto】首席架构师智库
快手【cea_csa_cto】首席架构师智库
小红书【cea_csa_cto】首席架构师智库首席架构师智库

谢谢大家关注,转发,点赞和点在看。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部