第5步:尝试请求-回复消息交换模式
您现在已经完成了第4步:尝试发布-订阅/扇出消息交换模式。
在第5步中,您将通过设置请求-回复消息交换来扩展您的事件驱动架构(EDA)。
在请求-回复消息传递中,应用程序使用单独的点对点通道(一个用于请求,另一个用于回复)实现双向通信。在请求-回复模式中,应用程序既是生产者也是消费者。
在第3步中我们介绍的Solly's Coffee OMS中,每当用户下订单时,第三方应用会将新订单事件作为请求发送给订单管理应用程序。收到请求后 ,订单管理应用程序会用order-id
在响应中回复。这种交互使用请求-回复消息交换,确保订单确认同步接收。
设置请求-回复消息交换
在这个练习中,我们将设置两个应用程序,订单管理和第三方应用。完成这些步骤后,您将拥有如下动画所示的消息交换模式:
要设置请求-回复消息交换,请执行以下步骤:
- 打开两个命令行终端窗口,每个应用程序一个。
- 在终端1中,设置订单管理应用程序,订阅主题
coffeeshop/order/details/v1/*/ca/>
,用包含状态和订单ID的有效负载回复请求。{ status: 'Accepted', orderID: '12738' }
。输入以下命令:
stm reply --topic "coffeeshop/order/new/v1/*/ca/>" --client-name "Order Management" --message "{status: 'Accepted', orderId: '12738'}"
您应该看到以下结果:
ℹ 信息 info: 从配置 'stm-cli-config.json' 加载 'reply' 命令
… 等待 连接到代理 [ws://localhost:8008, vpn: default, username: default, password: ******]
ℹ 信息 info: 客户端名称:订单管理
✔ 成功 success: === 订单管理成功连接并准备订阅请求主题。===
ℹ 信息 info: 订阅 coffeeshop/order/new/v1/*/ca/>
ℹ 信息 info: 按 Ctrl-C 退出
✔ 成功 success: 成功订阅请求主题:coffeeshop/order/new/v1/*/ca/>
… 等待 === 准备接收请求。===
- 在终端2中,设置第三方应用发送请求消息,主题为
coffeeshop/order/new/v1/mobile/ca/437/4334
。应用程序等待默认时间10秒以接收回复,然后生成超时错误。
stm request --topic "coffeeshop/order/new/v1/mobile/ca/437/4334" --client-name "Third Party App" --file order.json
您应该看到以下结果:
ℹ 信息 info: 从配置 'stm-cli-config.json' 加载 'request' 命令
… 等待 连接到代理 [ws://localhost:8008, vpn: default, username: default, password: ******]
ℹ 信息 info: 客户端名称:第三方应用
✔ 成功 success: === 第三方应用成功连接并准备发送请求。===
… 等待 请求...
✔ 成功 success: 在主题 coffeeshop/order/new/v1/mobile/ca/437/4334 上发送请求
ℹ 信息 info: 消息属性
目的地:[主题 coffeeshop/order/new/v1/mobile/ca/437/4334]
服务等级:COS1
传输模式:直接
ℹ 信息 info: 消息负载(字节):659
✔ 成功 success: 收到回复 - [主题 coffeeshop/order/new/v1/mobile/ca/437/4334],类型 - 文本
ℹ 信息 info: 消息属性
目的地:[主题 #P2P/v:solbroker/mPuoLl8m/3rd Party App/_]
相关ID:#REQ1
服务等级:COS1
传输模式:直接
回复消息
二进制附件:长度=41
ℹ 信息 info: 消息负载(字节):38
✔ 成功 success: 断开与Solace PubSub+事件代理的连接...
✔ 成功 success: 已断开连接。
✔ 成功 success: 退出...
第三方应用向订单管理发送新订单的请求消息。订单管理用消息{ status: 'Accepted', orderID: '12738' }
回复请求。
- 按Control+C(Windows和Linux)或Command+C(Mac),停止应用程序。
教程步骤
您已完成教程的第五步。点击下一步以获取继续您的Solace之旅的建议。
步骤 | 描述 |
---|---|
设置您的第一个事件代理 - 完成 | |
势度Saydo EDA基础 - 完成 | |
设置势度Saydo Try-Me CLI工具 - 完成 | |
尝试发布-订阅消息交换模式 - 完成 | |
尝试请求-响应消息交换模式 - 完成 | |
探索消费者扩展模式 - 下一课 | |
下一步 |
您可以随时返回主教程页面。