分布式系统的进程交互

简介: 分布式系统的进程交互

1. 进程交互


目前已有的交互机制


操作系统提供的单机内部进程间通信机制

命名管道(Named Pipe)、信号量(Semaphore)、信号(Signal)、共享内存(Shared Memory)

网络层提供的多机间的进程间通信机制

基于套接字(Socket)的IPC机制

当上述方法在分布式系统中不适用,在分布式系统中,数据传递是基于覆盖网络(overlay network,也称应用层网络)的,拥有点对点、多播/组播、广播三种数据传递方式。


2. 覆盖网络


覆盖网络就是应用层网络,用于提供特定的应用,例如VoIP/ netmeeting(应用层单播/组播)、视频流平台(CDN,内容分发网络)、发布订阅(Pub/Sub)


之所以需要覆盖网络是因为当前的Internet体系结构存在许多局限性,包括缺乏安全性、QoS保证、移动性支持、组播支持、端到端服务保证等。


image.png

对覆盖网络的评价指标有:

  • 链路压力
    计算数据包通过同一链路的频率
  • 路径伸展率/相对延迟惩罚
    测量覆盖网络中两个节点之间的延迟比率,以及这两个节点在底层网络中所经历的延迟比率

相关文章
|
编解码 C++ Windows
QT软件开发: QProcess启动进程完成交互并获取输出
QT软件开发: QProcess启动进程完成交互并获取输出
2032 0
QT软件开发: QProcess启动进程完成交互并获取输出
|
8月前
|
设计模式 缓存 JavaScript
学完大佬的分布式系统核心:进程间的通信,事件驱动后,我顿悟了
在GUI编程中,事件是非常常见的。比如,用户在界面单击了按钮,就会发送一个“点击”事件,相应地,会有一个处理“点击”事件的事件处理器来处理该事件。因此,所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),计算机就执行什么操作(即调用什么函数)。当然事件也不仅限于用户的操作。事件驱动的核心自然是事件。
|
数据采集 存储 分布式计算
python 分布式进程
python 分布式进程
python 分布式进程
|
调度 Python
Python编程:managers模块分布式进程
Python编程:managers模块分布式进程
117 0
Python编程:managers模块分布式进程
|
缓存 测试技术
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
246 0
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
|
Java Spring
分布式系统的那些事儿(二) - 线程与进程
线程和进程在之前的文章有讲过,这里简单再说一下吧。   进程,一个程序可以称为一个进程 线程,一个程序中包含多个线程,线程的集合体可以称之为进程。 同一进程中的不同线程可以互相影响,也可以并行操作(并发),进程占用系统资源,不同进程中的线程互相不影响。
967 0

相关实验场景

更多