分布式学习 12.26 异步通讯设计

同步:实时响应一一像打电话。

同步带来的问题:

1. 吞吐量。由系统中最慢的决定。

2. 资源。因等待而消耗调用方资源。

3. 一对一。

4. 被调用方宕机可能导致调用方宕机。

异步:非实时响应一一像发邮件。

异步通讯三种方式:

1. 请求响应式一一依赖状态。

发送方发送请求,接收方收到后立即回复“正在处理”。对于返回结果:发送方轮循,查看执行结果;或发送方发送请求时将自己的url发送给接收方,接收方处理完成后回调。

2. 订阅的方式一一依赖事件。

接收方订阅发送方的消息,发送方将内容放到接收方订阅的消息队列中。

3. Broker

该中间件(服务总线)必须是高可用、高性能、可水平扩展、持久化不丢数据。


事件驱动优与劣

优:避免服务间依赖、开发 测试 运维 故障处理流程高度隔离、服务间不会相互Block、易维护(加熔断、降级、限流、版本等)、解开服务间的吞吐

劣:业务流程复杂、事件可能乱序、事务处理复杂。

异步通讯设计重点:

·解耦服务

·隔离性

·服务间的性能互不影响

·利用Broker削峰

·部署、扩容、运维方便

注意事项:

·Broker高可用

·事件顺序可打乱

·业务处理流程不直观

·总控方监控业务流程状态变更逻辑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容