gpt4 book ai didi

php - 如何管理/平衡服务实例上的半持久作业

转载 作者:IT王子 更新时间:2023-10-29 00:12:47 25 4
gpt4 key购买 nike

我看到了我们尝试开发的服务的通用模式,我想知道是否有工具/库可以提供帮助。虽然微服务文献中讨论的默认作业来自 REQUEST -> RESPONSE 性质,但我们的作业或多或少是半永久性任务的分配。

此类任务的示例

  • 监听来自源 X 和 Y 的数据的消息队列,关联传入的数据并将其存储在 Z 中。
  • 保留一个内存缓冲区,每当有新数据输入时,它就会计算过去 15 分钟数据的运行平均值。

目前我们的服务是用 PHP 编写的。由于 PHP 进程和与消息队列的连接的感知开销,我们希望单个服务进程同时处理多个这些作业。

一张图表有望说明我们头脑中的设置: services_setup

  • Service Workers 目前是去魔化的 PHP 脚本
  • 对于服务注册中心,我们正在寻找 Zookeeper

虽然 Zookeeper(和 Curator)进行负载平衡,但我没有发现任何关于分配永久性工作(可更新、可移动且必须在工作人员死亡时重新分配)

工作经理的建议职责

  • 了解工作
  • 了解可以完成这些工作的服务
  • 可以将工作分配给服务
  • 可以向服务发送工作更新
  • 如果 worker 死亡,可以重新分配工作

是否有任何库/工具可以解决此类问题,从而起到作业管理器的作用?或者这是一个大的反模式,我们应该用其他方式来做吗?

最佳答案

你应该看看Gearman .

它由分配作业的客户端、一个或多个将接收并执行作业的workers和一个server组成将维护功能(服务)和待处理工作的列表。如果 worker 死亡,它将重新分配工作。

关于php - 如何管理/平衡服务实例上的半持久作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31342583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com