首页 > 其他分享 >分布式架构通信方式

分布式架构通信方式

时间:2023-06-25 10:57:02浏览次数:39  
标签:架构 方式 通信 API 节点 分布式

分布式通信方式

  分布式通信是指在分布式系统中,不同节点之间进行消息传递和交互的方式。
  以下是常见的分布式通信方式:

  1. 消息队列(Message Queue):使用消息队列作为中间件,节点之间通过发送和接收消息来实现通信。消息队列提供了异步、解耦和可靠性的通信机制,常见的消息队列系统包括RabbitMQ、Apache Kafka和ActiveMQ等。
  2. 远程过程调用(Remote Procedure Call,RPC):使用RPC技术进行分布式通信,允许节点之间像调用本地函数一样进行远程调用。RPC提供了一种透明的通信方式,常见的RPC框架包括gRPC、Apache Thrift和Spring Cloud等。
  3. RESTful API:使用基于HTTP协议的RESTful API进行通信,节点之间通过HTTP请求和响应进行数据交换。RESTful API提供了一种简单和标准化的通信方式,常用于构建分布式Web服务和微服务架构。
  4. 分布式共享内存(Distributed Shared Memory,DSM):通过共享内存的方式实现分布式通信,允许多个节点共享内存空间,从而实现数据共享和交互。DSM提供了高性能的通信方式,常见的DSM系统包括Apache Ignite和Hazelcast等。
  5. 网络套接字(Socket):使用底层的网络套接字进行直接的节点间通信,可以基于TCP或UDP协议实现点对点的数据传输。网络套接字提供了最底层的通信方式,常用于构建自定义的分布式通信协议和框架。

优缺点

  以下是上述五种分布式通信方式的优点、缺点和适用场景的总结:

  1. 消息队列(Message Queue):
    优点:异步通信、解耦性高、支持可靠性消息传递、支持消息持久化、可扩展性好。
    缺点:引入中间件,增加了系统复杂性;消息顺序性可能受到影响;需要额外的管理和维护。
    适用场景:分布式系统解耦、异步任务处理、实时数据流处理、事件驱动架构。

  2. 远程过程调用(Remote Procedure Call,RPC):
    优点:简化分布式通信过程;透明的远程调用;支持多种编程语言;高性能。
    缺点:服务依赖性高;通信过程对网络要求较高;对系统的管理和维护较为复杂。
    适用场景:微服务架构、跨语言通信、高性能计算、分布式计算。

  3. RESTful API:
    优点:简单易用、基于标准的HTTP协议、良好的可扩展性、松耦合。
    缺点:同步通信方式、无状态性可能导致性能问题;数据传输较为冗余。
    适用场景:Web服务、前后端分离架构、微服务架构。

  4. 分布式共享内存(Distributed Shared Memory,DSM):
    优点:高性能的数据共享和交互;简化编程模型;可扩展性好。
    缺点:一致性和同步性问题;需要复杂的内存管理和同步机制;依赖于底层网络。
    适用场景:分布式缓存、分布式计算、分布式数据库。

  5. 网络套接字(Socket):
    优点:最底层的通信方式;灵活性高;适用于定制化通信需求。
    缺点:需要自行处理通信协议和数据格式;可靠性和一致性问题需要自行解决。
    适用场景:定制化分布式通信协议、低级别的网络通信、特定的性能优化需求。

  需要根据具体的系统要求、性能需求、可靠性需求、开发团队技术栈和经验等因素,综合考虑选择合适的分布式通信方式。有时候,系统可能会结合多种方式来满足不同的需求,例如使用消息队列进行异步通信,结合RESTful API进行同步交互。

总结

  对于小团队来说,推荐使用已经比较成熟的开源库。
  如近几年有关”Message Queue”的项目层出不穷,知名的就有十几种,这主要是因为后摩尔定律时代,分布式处理逐渐成为主流,业界需要一套标准来解决分布式计算环境中节点之间的消息通信。几年的竞争下来,Apache 基金会旗下的符合 AMQP/1.0标准的 RabbitMQ 已经得到了广泛的认可,成为领先的 MQ 项目。

标签:架构,方式,通信,API,节点,分布式
From: https://www.cnblogs.com/AngleLin/p/17502391.html

相关文章

  • 网易交互设计师微专业C3 规范信息架构与流程设计
    如果有需要视频资源的可以关注"AI产品经理人",回复关键字“网易交互设计微专业”获取下载链接~  Chapter3规范信息架构与流程设计第一章 信息架构设计(一)认知产品信息架构定义:信息架构设计是对信息进行结构、组织方式以及归类的设计,好让使用者与用户容易使用和理解的一项艺术与......
  • 强化学习从基础到进阶-常见问题和面试必知必答[4]::深度Q网络-DQN、double DQN、经验回
    强化学习从基础到进阶-常见问题和面试必知必答[4]::深度Q网络-DQN、doubleDQN、经验回放、rainbow、分布式DQN1.核心词汇深度Q网络(deepQ-network,DQN):基于深度学习的Q学习算法,其结合了价值函数近似(valuefunctionapproximation)与神经网络技术,并采用目标网络和经验回放等方法进......
  • 系统架构设计师笔记第22期:软件可靠性建模
    软件可靠性建模是指通过分析软件系统的特征和行为,预测其可能出现的故障和失效情况,从而评估软件系统的可靠性和安全性。软件可靠性建模通常使用统计方法和数学模型,以定量分析软件系统的可靠性和安全性。以下是一些常见的软件可靠性建模方法:故障树分析(FTA):FTA是一种演绎推理方法,通过识......
  • Windows电脑为例,设置minio文件服务分布式部署
    前言关于分布式文件存储,之前我也是使用fastdfs,那为什么突然选择minio?1、它可以多平台部署2、搭建起来不是很复杂3、github近30K的star什么是minio?构建高性能的云原生数据机器学习,大数据分析,海量存储的基础架构MinIO支持各种应用程序数据工作负载在中国:阿里巴巴、腾讯、百......
  • MySQL 中常见的高可用架构部署方案
    MySQL中常见的高可用架构部署方案IT奋斗的青年 2023-06-0608:36 发表于山东收录于合集#mysql17个MySQL中的集群部署方案前言这里来聊聊,MySQL中常用的部署方案。MySQLReplicationMySQLReplication 是官方提供的主从同步方案,用于将一个MySQL的实例同步到另......
  • 读发布!设计与部署稳定的分布式系统(第2版)笔记10_自动化和缓慢的响应
    1. 工业机器人1.1. 具有多层防护措施,防止对人员、机器和设施造成损害1.2. 防护措施能限制机器人的动作和传感器的感知1.3. 机械臂的旋转范围会远远小于它可以达到的全部运动范围2. 自动化2.1. 它更像是工业机器人2.1.1. 掌握控制层感知系统的当前状态2.1.2. 将其......
  • 基于FPGA的FSK调制解调通信系统verilog实现,包含testbench
    1.算法仿真效果vivado2019.2仿真结果如下:   2.算法涉及理论知识概要       频移键控是利用载波的频率变化来传递数字信息。数字频率调制是数据通信中使用较早的一种通信方式,由于这种调制解调方式容易实现,抗噪声和抗衰减性能较强,因此在中低速数字通信系统中得......
  • 基于FPGA的FSK调制解调通信系统verilog实现,包含testbench
    1.算法仿真效果vivado2019.2仿真结果如下:2.算法涉及理论知识概要频移键控是利用载波的频率变化来传递数字信息。数字频率调制是数据通信中使用较早的一种通信方式,由于这种调制解调方式容易实现,抗噪声和抗衰减性能较强,因此在中低速数字通信系统中得到了较为广泛的应用。......
  • 分布式系统认证方案
    根据选型的分析,决定采用基于token的认证方式,它的优点是:1、适合统一认证的机制,客户端、一方应用、三方应用都遵循一致的认证机制。2、token认证方式对第三方应用接入更适合,因为它更开放,可使用当前有流行的开放协议Oauth2.0、JWT等。3、一般情况服务端无需存储会话信息,减轻了服......
  • 【一】网络编程之CS与BS架构
    网络编程【一】什么是BS结构,什么是CS结构?C/S和B/S都是互联网中常见的网络结构模型。【1】什么是C/S模型?C是英文单词“Client”的首字母,即客户端的意思C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。例如:拼多多APP、PC上的有道云笔记等等【2】什么是B/S......