前言
在上一篇文章中,我们说到了异步消息通讯,下面这篇文章呢,大部分内容是翻译来自于这篇微软的文章,所以其内容还是具有一定的理论指导意义的。
当我们跨多个微服务进行内部通讯的时候,异步消息和事件驱动至关重要。我们可能需要在不同的边界上下文中进行域模型的更新。
我们举个例子,比如 eShop 这个项目中,Ording 服务在下单的时候要和 Catelog 服务进行通讯进行库存的扣减操作,这个时候我们就需要一种方式来做这个事情,并且能够在发生故障的时候也能正常工作,也就说需要进行基于异步消息和最终一致性的通讯方式。
当使用基于消息的通讯方式的时候,进程中是采用的异步的方式通讯的。客户端向某个服务发送消息,如果这个消息需要回复,那么另一个服务会向客户端发送一个不同的消息,并且客户端会认为该消息不会立即被接收到,并且不存在响应,这就是一种基于消息的通讯方式。
消息由标题(name 或者 title)和内容(Body)共同构成。消息通常会通过一些异步协议进行发送(如AMQP,kafka协议)。
异步消息通讯有两种:一种是单接收者(端到端),另外一种是多接收者(广播)。
如果有同学对消息队列比较了解的话,这就是消息队列的两种典型使用方式。
基于消息的单接收者
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26