前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >“同步转异步” 的 “生产者和消费者” 模型

“同步转异步” 的 “生产者和消费者” 模型

原创
作者头像
软件书桌
发布2024-07-10 16:32:33
970
发布2024-07-10 16:32:33

系统设计开发起步的时候功能通常都是用同步的方式实现的,随着系统的迭代对稳定性和性能的要求会逐步变高,这种时候通常会使用同步转异步的方式来改进和优化。

私有云中一个集群中能并发创建虚拟机的数量是有限的,如果同时并发创建的虚拟机太多,超过私有云集群支持的并发上限,轻者虚拟机创建完成总时间超时,重者系统过载导致虚拟机创建失败。

如果使用同步转异步的方式来优化的话,可以将这些并发任务放到任务队列中,通过调度控制并发,排队创建虚拟机,则能保证这些虚拟机都能平稳的创建成功。

同步转异步的一种实现方式使用消息队列的方式,它的概要模型如下。

生产者和消费者模型

  1. Sender
    1. 任务发布模块,生成具体任务,可根据业务逻辑按交互进行拆分。
    2. 例如:计算、存储、网络,可以分别是一个 Sender。
  2. Broker
    1. 存储具体序列化后的任务,比如使用 Redis、AMQP 和 SQS 等。
  3. Worker
    1. 工作进程,负责消费者功能,处理具体的任务。
    2. 执行结果写回到 Backend 或者 callback Sender。
  4. Backend
    1. 后端存储,用于存储任务执行状态的数据。

生产者和消费者模型是使用消息队列实现同步转异步的最基础原理,不论使用什么中间件或者框架来实现,最基础的流程就是这样,这也是必须理解的最基础入门。

为什么这么基础的东西都要写?因为,以后写复杂东西的时候可以引用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档