首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我们来浅谈云计算服务架构任务池的搭建和使用,看你能吸收多少?

任务池的搭建与使用

任务池是后端应用程序发布任务和云计算服务软件领取任务的地方,对应的,需要在RabbitMQ中创建一个消息队列作为任务池。后端应用程序发布任务时,通过默认交换机和任务消息名称,把任务发送到指定的任务消息队列中。

多个云计算服务软件同时监听任务消息队列,同一任务只会被一个云计算服务软件获取。后端应用程序发布任务和云计算服务软件领取任务的流程如图5.25所示。需要注意的是,如果有多种任务和多种与之匹配的云计算服务软件,则需要创建多个任务消息队列。

图5.25 后端应用程序发布任务和云计算服务软件领取任务的流程

除了以上介绍的任务发布与任务领取流程以外,一般来说,任务消息队列还需要关注以下3个细节:

任务消息队列需要被设置成持久化,避免由于RabbitMQ服务重启而导致任务消息丢失。

云计算服务软件在监听任务消息队列前,需要设置为手动确认消息,这样即使云计算服务软件在执行任务过程中异常退出(未确认任务消息),任务消息仍会被其他云计算服务软件获取并执行。

云计算服务软件在监听任务消息队列前,需要设置为在没确认消息之前不接收新消息,确保任务消息不会积压在少数几个云计算服务软件当中。

任务池搭建与使用的相关代码如代码5.15所示,其中,示例代码是使用C++编写的,而后端应用程序一般是使用Java等开发语言编写的,所以在实际编码中,后端应用程序发送任务消息部分的编码可能会有所区别。

代码5.15 任务池搭建与使用的相关代码

任务消息一般为JSON格式,这样能做到灵活配置。后端应用程序在发送任务时,需要把任务消息转换成字符串。而云计算服务在获取到任务消息后,需要把字符串转成JSON格式。任务消息一般包含任务标识、任务ID、任务参数、任务开始时回调后端应用程序的RESTful API地址及任务结束时回调后端应用程序的RESTful API地址等,如代码5.16所示。

代码5.16 任务消息示例

本文给大家讲解的内容是云计算服务架构任务池的搭建和使用

下篇文章给大家讲解的内容是大型网站架构的技术细节:云计算服务架构指令池的搭建和使用

感谢大家的支持

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230108A00HPB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券