分布式系统学习笔记

来源:互联网 发布:手机mv录制软件 编辑:程序博客网 时间:2024/06/01 17:36

分布式系统的定义

分布式系统就是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。

当在不同的主机执行不同的功能来最终完成同一个服务,这就可以叫做分布式系统。当在不同的主机执行相同的功能,这就叫做集群。集群就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。

分布式系统的优势

分布式系统因为将数据、功能等都分到多个主机,这样如果发生由于各种原因而导致的主机崩溃的时候,我们可以减轻风险,另一个重要的优势就是可扩展性,任何主机都会有性能的极限,而分布式可以通过不断扩张主机的数量以实现横向水平性能的扩展,主机数量越多,CPU、内存、存储资源等也就越多,能够处理的并发访问量也就越大。

分布式系统面临的挑战

  • 异构性:分布式系统由于基于不同的网络、操作系统、计算机硬件和编程语言来构造,所以必须用一种通用的网络通信协议来屏蔽异构系统之间的差异。一般由中间件来处理这些差异。
  • 一致性:数据被分散或者复制到不同的主机上,如何保证各台主机的一致性则成为一个难点。
  • 故障独立性:分布式系统要求单个主机出现故障不会影响整个系统的正常使用。
  • 安全性:由于分布式系统主要通过网络通信来相互沟通,所以网络通信中的数据安全也是一个需要解决的问题。
  • 可扩展性:系统要设计成随着业务量的增加,相应的系统也必须要能扩展来提供相对应的服务。

分布式系统基础设施

  1. 分布式缓存系统
    分布式缓存主要用于高并发环境相爱,减轻数据库的压力,提高系统的响应速度和并发吞吐量。当大量的读、写请求涌向数据库时,磁盘的处理速度和内存不再一个量级,因此,在数据库之前加一层缓存,能够显著提高系统的响应速度,并降低数据库的压力。
  2. 持久化存储
    常见的分布式系统存储解决方案,包括Mysql的分布式扩展、HBase的API及使用场景、Redis的使用等。
  3. 分布式信息系统
    消息可以被保存在队列中,直到被接受者取出。
  4. 搜索引擎
    垂直化的搜索引擎。
  5. CDN系统
  6. 负载均衡系统
  7. 运维自动化系统
  8. 实时计算系统
  9. 离线计算系统
  10. 分布式文件系统
  11. 日志收集系统
  12. 监控系统
  13. 数据仓库

今天先写到这儿,后面补充。。。