分布式系统的进程交互

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

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启动进程完成交互并获取输出
2483 0
QT软件开发: QProcess启动进程完成交互并获取输出
|
3月前
|
消息中间件 JSON 自然语言处理
Python多进程日志以及分布式日志的实现方式
python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
4月前
|
消息中间件 JSON 自然语言处理
python多进程日志以及分布式日志的实现方式
python日志在多进程环境下的问题 python日志模块logging支持多线程,但是在多进程下写入日志文件容易出现下面的问题: PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。 也就是日志文件被占用的情况,原因是多个进程的文件handler对日志文件进行操作产生的。
|
6月前
|
存储 缓存 Linux
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
本文介绍了Xenomai中的XDDP(Xenomai Distributed Data Protocol)通信机制,XDDP用于实时和非实时进程之间的数据交换。XDDP在Xenomai内核中涉及的数据结构和管理方式,以及创建XDDP通道后的实时端和非实时端连接过程。
304 0
xenomai内核解析--xenomai与普通linux进程之间通讯XDDP(三)--实时与非实时数据交互
|
设计模式 缓存 JavaScript
学完大佬的分布式系统核心:进程间的通信,事件驱动后,我顿悟了
在GUI编程中,事件是非常常见的。比如,用户在界面单击了按钮,就会发送一个“点击”事件,相应地,会有一个处理“点击”事件的事件处理器来处理该事件。因此,所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),计算机就执行什么操作(即调用什么函数)。当然事件也不仅限于用户的操作。事件驱动的核心自然是事件。
|
数据采集 存储 分布式计算
python 分布式进程
python 分布式进程
python 分布式进程
|
调度 Python
Python编程:managers模块分布式进程
Python编程:managers模块分布式进程
153 0
Python编程:managers模块分布式进程
|
缓存 测试技术
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
294 0
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
|
NoSQL 安全 Java
每日一面 - 假设 Redis 基本可靠,如何用单进程 Redis 实现分布式悲观锁
每日一面 - 假设 Redis 基本可靠,如何用单进程 Redis 实现分布式悲观锁
|
存储 大数据 分布式数据库
一句话说清分布式锁,进程锁,线程锁
在分布式集群系统的开发中,线程锁往往并不能支持全部场景的使用,必须引入新的技术方案分布式锁。 线程锁,进程锁,分布式锁 线程锁:大家都不陌生,主要用来给方法、代码块加锁。当某个方法或者代码块使用锁时,那么在同一时刻至多仅有有一个线程在执行该段代码。
1520 0

热门文章

最新文章