本文主要是介绍分布式系统的主要考虑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 异构性:分布式系统由于基于不同的网路、操作系统、计算机硬件和编程语言来构造,必须要考虑一种通用的网络通讯协议来屏蔽异构系统之间的禅意。一般交由中间件来处理这些差异。
- 缺乏全球时钟:在程序需要协作时,它们通过交换消息来协调它们的动作。紧密的协调经常依赖于对程序动作发生时间的共识,但是,实际上网络上计算机同步时钟的准确性受到极大的限制,即没有一个正确时间的全局概念。这是通过网络发送消息作为唯一的通信方式这一事实带来的直接结果。
- 一致性:数据被分散或复制到不同的机器上,如何保证各台主机之间数据的一致性将成为一个难点。
- 故障的独立性:任何计算机都有可能发生故障,且各种故障不尽相同。它们之间出现故障的时间也是相互独立的。一般分布式系统要设计成允许出现部分故障,而不影响整个系统的正常使用。
- 并发:分布式系统的目的是更好的共享资源。那么系统中的每个资源都必须被设计成在并发环境中安全的。
- 透明性:分布式系统中任何组件的故障,或者主机的升级和迁移对于用户来说都是透明的,不可见的。
- 开放性:分布式系统由不同的程序员来编写不同的组件,组件最终要集成为一个系统,那么组件所发布的接口必须遵守一定的规范且能够被相互理解。
- 安全性:加密用于给共享资源提供适当的保护,在网络上所有传递的敏感信息,都需要进行加密。拒绝服务攻击仍然是一个有待解决的问题。
- 可扩展性:系统要设计成随着业务量的增加,相应的系统也必须要扩展来提供对应的服务。
---------------------------------------------《Spring Cloud微服务架构》柳伟卫
这篇关于分布式系统的主要考虑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!