二、基于异步消息模式的通信
1 消息传递
消息传递两种架构:基于消息代理(服务通信的基础设施服务)的架构、基于无代理的架构。
基于无代理的消息传递架构:服务直接通信
基于消息代理的消息传递架构:服务通过消息通道通信。发送方(应用程序或服务)将消息写入通道,接收方(应用程序或服务)从通道读取消息。
1.1 关于消息
1.1.1 概念
消息组成:头部+主体
消息头部内容:
1、标题是名称和值对的组合,描述正在发送的数据的元数据。
2、发件人或消息传递基础上设施生成的唯一消息ID
3、可选的返回地址(该地址指定发送回复的消息通道)
消息主体:以文本或二进制格式发送的数据。
1.1.2 消息类型
·文档:仅包含数据的通用消息。接收者决定如何解释它。对命令式消息的回复是文档消息的一种使用场景;
·命令:一条等同于RPC请求的消息。它指定要调用的操作及其参数;
·事件:表示发送方这一端发生了重要的事件。事件通常是领域事件,表示领域对象的状态更改。
1.2 关于通道
消息通道类型:点对点、发布-订阅
点对点通道向正在从通道读取的一个消费者传递消息,服务使用点对点通道来实现一对一交互方式。例如,命令式消息通常通过点对点通道发送。