进程间的通信方式三种 进程间通信

进程间通信(进程间有三种通信模式)
概述服务内部沟通主要分为两类:
基于同步请求/响应的通信,如REST、gRPC等 。
基于异步消息的通信,如AMQP、STOMP等 。
有两种类型的通信方法:
第一类:
一对一的交流
一对多通信
第二类:
同步通信
异步通信
一对一通信实施:
请求/响应通信
异步请求响应
单向通知
1多通信的实现:
发布订阅
发布/异步响应
消息格式进程间通信对的本质是消息对交互 。
有两种类型的消息格式:文本消息和二进制消息 。
文本格式:JSON,XML
二进制格式:Avro、Protobuf、Thrift
跨编程语言的消息格式传输对于使用非常重要,所以Java序列化并不是一个好的选择 。
RPC远程过程调用调用远程服务,就像调用本地方法一样 。

在客户端的业务逻辑中,调用远程提供者的代理接口 。
提供商代理通过网络传输将数据发送到接口服务器,服务器接收消息进行业务逻辑处理 。
执行后,服务器通过代理将结果发送给客户端,客户端接收调用结果 。
RESTREST是一个规范,而不是一个协议 。REST通常使用HTTP协议 。
REST中的一个关键概念是资源,它通常代表一个业务实体,比如用户、订单或对象集合 。
调用REST HTTP接口有一定的规范,比如:
发布/用户:创建用户
上传/用户:修改用户信息
GET /users:获取用户列表 。
GET /user/{userId}:获取指定的用户信息 。
服务发现服务发现有两种:静态发现和动态发现 。
静态发现是指知道对方的地址,运行时地址是固定的,可以通过地址直接发现服务 。
动态发现是指服务提供者的动态扩张(收缩),而运营是指根据特定的策略获取相应的服务提供者 。
动态服务发现:

【进程间的通信方式三种 进程间通信】动态服务发现通常有两种实现方式:
注册:需要一个注册中心 。服务提供者在启动时向注册中心注册,服务消费者从注册中心获取服务列表 。
通过部署平台,如Kubernetes
异步消息基于消息通信的应用程序通常使用Message Broker,它作为服务之间的中介而存在 。
在这种模式下,发送方将消息发送到指定的通道,而使用者(接收消息的对象)从通道中读取消息 。
消息由标题和正文组成 。由标头键值集组成,通常包括消息的唯一ID 。
消息类型:
文件
命令
事件

通道(Channel)消息通过信道交换 。
一般来说,有两种渠道:
点对点信道
订阅频道
异步消息的实现1.异步请求响应


    推荐阅读