面向消息的持久通信与面向流的通信

简介: 一、面向消息的持久通信   消息队列系统为持久异步通信提供多种支持,本质是提供消息的中介存储能力,这样就不需要消息发送方和接收方在消息传输过程中都保持激活状态。 消息队列模型   应用程序可以通过在特定队列中插入消息来进行通信。

一、面向消息的持久通信  

消息队列系统为持久异步通信提供多种支持,本质是提供消息的中介存储能力,这样就不需要消息发送方和接收方在消息传输过程中都保持激活状态。

消息队列模型

  应用程序可以通过在特定队列中插入消息来进行通信。消息由一系列通信服务器依次进行转发,最终送达目的地。即使在消息发送过程中接收方的机器未处于运行状态,消息也能送到。

  消息队列系统的重要特征之一是,通常只能确保发送方发出的消息最终能插入到接收方的队列中,并不保证消息到达的时间,甚至不保证消息一定会得到读取,这完全由接收方来决定。

  

  消息转换器可以像一个消息格式重新编排工具一样简单。比如说,假定输入的小细胞含有数据库中的一张表,其中,记录之间通过特殊的代表记录结束的分隔符来分割,而记录中的字段长度已知且固定。如果目的应用程序希望使用另外的分隔符来分割记录,并且希望字段是可变长度,就需要使用消息转换器来讲消息格式转换为目的应用程序所能够接受的格式。

  普通消息队列系统的目标并不仅仅在于为最终用户提供支持,建立这样的系统要解决的重要问题是:要为进程间的持久通信提供支持,无论该进程是在运行用户程序,在处理对数据库的访问,还是在进行计算等,都必须能够支持其通信。 比如说:一个设计若干个数据库查询可能需要切分成为几个子查询,然后将这些子查询转发给相应的数据库。在这个过程中可以利用消息队列系统所提供的基本方法来讲每个子查询打包进消息中去,然后将消息发送给相应的数据库。

二、面向流的通信

  1、为连续媒体提供支持

  媒体是指传送信息的手段,其中包括存储以及传输介质。媒体的重要类型是信息的表示方式,也就是信息在计算机系统中的编码方式。比如文本一般是用ASCII或Unicode来进行编码。图像可以采用GIF或JPEG等格式来表示。而计算机中的音频流可以采用诸如PCM的16位样本来编码。

  2、数据流

  对于连续数据流来说,同步是极为关键的。为了捕捉同步状况,要对不同传输模式做出区分。在异步传输模式下,流中的数据项是逐个传输的,但是对于某一项在何时进行传输并没有进一步的限制。比如:文件可以作为数据流来传输,但是每一数据项传输完成的确于时间通常是无关紧要的。

  在同步传输模式下,数据流中的每一个单元都定义了一个端到端最大延迟时间。比如:传感器以某个特定的采样率对温度值进行采样,然后将采样结果通过网络传送给操作员。

  等待传输模式,在这种模式中数据单元必须按时传输,也就是数据传输的端到端延迟时间必须同时受到上限和下限的约束,端到端延迟时间上限和下限也称为边界延迟抖动。这种传输模式对分布式多媒体系统极为有用。

 

  一个简单的流只包含有单个数据序列,而一个复杂的流由若干相关的简单流----子流构成。一个复杂流的例子是关于影片传输的。这个流由单个视频流,以及两个用于以立体声方式传输电影中声音的音频流。第四个流用来传输自摸或者翻译成其他语言的文字。各子流间的同步依然是重要的。如果无法做到同步,就无法完整地复现影片。

3、同步机制

  那么到底是如何做到同步的呢?包含两方面问题,(1)两个流同步的基本机制 (2)在网络环境下这些机制的分布式版本

  同步是通过显式地对单个流的数据单元进行操控来实现的。在本质上,存在一个专门在少数几个简单流上执行读写操作的进程。

  多媒体中间件系统中,中间件提供了一组接口用于控制视频流和音频流,其中包括诸如显示器、照相机和买客房等设备的接口。每个设备和每个流都有自己的高级接口,其中包括在发生某些事件时通知应用程序接口,后者用来编写用于流同步的处理程序。

  

那么最后总结:

  面向消息的中间件模型一般提供持久异步通信,用在RPC不适用的场合。主要用来协助高度分散的数据库继承进大规模信息系统中。

  流是一种完全不同的通信方式,主要问题是两个连续的消息是否有时间上的练习。在连续数据流中,每个小弟都规定了端到端的最大延迟时间。发送的消息还要受到端到端最小延迟时间的约束

参考文献:《分布式系统原理与泛型》

目录
相关文章
|
NoSQL 关系型数据库 MySQL
做电商业务开发这几年,我学到的系统稳定性建设方法
文章总结了电商业务开发中保障系统稳定性的关键方法,包括代码健壮性、安全变更、系统链路梳理、接口降级与限流、定期降级演练、预案准备、系统压测、日常巡检、中间件巡检、值班制度和告警机制,强调了稳定性建设是一个长期任务,需要持续迭代优化,并保持对生产系统的敬畏之心。
|
数据采集 安全 网络安全
为什么数据采集适合使用动态住宅http代理?
动态住宅HTTP代理在数据采集中的优势在于:提供稳定的家庭带宽提升成功率,允许灵活的多地区IP切换以增强效率,防止因单一IP限制导致的采集阻碍,并通过高匿名性保护用户隐私安全。这些特性使得它们成为高效且安全的数据采集工具。
111 0
为什么数据采集适合使用动态住宅http代理?
|
存储 缓存 NoSQL
Redis缓存设计原理及实战(上)
一个系统中的不同层之间的访问速度不一样,所以我们才需要缓存,这样就可以把一些需要频繁访问的数据放在缓存中,以加快它们的访问速度。
379 0
Redis缓存设计原理及实战(上)
|
9天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1197 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1126 87
|
6天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
577 11
|
18天前
|
人工智能 运维 安全
|
8天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1694 12

热门文章

最新文章