什么是分布式系统
分布式系统一定是由多个节点(计算机)组成,节点间连通。 在每个节点上部署应用程序组件,程序组件通过消息传递的形式进行通信协作。
为什么需要分布式系统
1. 升级单机处理能力的性价比越来越低
处理能力包括:CPU,内存,磁盘,网络(网卡)
2. 单机处理能力存在瓶颈
3. 出于稳定性和可用性考虑
分布式系统基础知识
计算机5要素
输入设备,输出设备,运算器,控制器,存储器
单线程程序
代码的顺序,分支和循环执行
多线程程序
1. [好处]充分利用多核
程序 = 可串行部分W(S) + 可并行部分W(N)
阿姆达尔定律(Amdahl's law): S(N) = [W(S) + W(P)] / [W(S) + W(P)/N]
这个公式告诉我们, 程序中可并行代码的比例决定你增加处理器所能带来的速度提升的上限。
2. [难处]多线程并发控制/协调工作
1) 多线程对共享数据并发访问
经典的生产者消费者例子。线程安全/不安全。共享数据被加锁/copy on write。
2)多线程协调工作
A, B两个线程。B线程需要等到某个状态或事件发生时才能继续执行。而该状态或事件是由
A触发的。机制一般是锁或事件通知。
网友评论