分布式系统下的一些概念介绍


进程与线程

  • 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
  • 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源

并发

  • 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其他线程处于挂起状态。这种方式我们称之为并发

  • 锁(lock)作为用于保护临界区(critical section)的一种机制,被广泛应用在多线程程序中,比如Java(synchronized , ReentrantLock…)
  • 减少或规避锁竞争的一些策略:
    • 分拆锁
    • 分离锁
    • 避免共享变量缓存
    • 使用并发容器如Amino
    • 使用Immutable数据和ThreadLocal中的数据

并行

  • 当系统有一个以上的CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)
  • 和并发的区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生

集群

  • 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理
  • 集群配置是用于提高可用性和可伸缩性。其实,分布式系统可以表达为很多机器组成的集群,靠彼此之间的网络通信,担当的角色可能不同,共同完成同一件事情的系统

状态特性

  • 在大部分应用中都提倡服务无状态,分布式环境中的任何节点(Node)也是无状态的
  • 无状态是指不保存存储状态,则可以随意重启和替代,便于做扩展。比如负载均衡服务器Nginx是无状态的,应用服务绝大部分也是无状态的,在高压力访问下,撑不住了就加一些机器,扩展很容易

系统重发和幂等性

  • 网络重复请求,造成的原因有多种
  • 幂等性就是调用1次和调用N次要返回一样的结果

文章作者: Xudong Jiang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Xudong Jiang !
 上一篇
分布式系统理论介绍 分布式系统理论介绍
本文介绍关于分布式系统的一些理论,后续还会涉及到 CAP理论 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否有同样的值。(等同于所有节点访问同一份最新的数据副本 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端
下一篇 
缓存策略-缓存算法介绍 缓存策略-缓存算法介绍
今天介绍下缓存算法 FIFO算法 进先出(FIFO,队列),是最简单、最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小。空间满的时候,最先进入的数据会被最早置换(淘汰)掉 实现:维护一个FIFO队列,按照
2020-02-12
  目录