我看到了我们试图开发的服务的通用模式,我想知道是否有工具/库可以在这里提供帮助。虽然微服务文献中讨论的默认作业来自REQUEST -> RESPONSE性质,但我们的作业或多或少是半永久性任务的分配。
这类任务的示例
目前,我们的服务是用PHP编写的。考虑到PHP进程和消息队列连接的开销,我们希望单个服务进程能够同时处理这些作业中的多个。
这张图表很有希望地展示了我们头脑中的设置:
Zookeeper服务工作者目前是用于服务注册表的脚本
当Zookeeper (和管理员)做负载均衡时,我没有发现任何关于分配永久任务的东西(这些任务是可更新的,可删除的,并且在一个工人死后必须重新分配)
作业经理的建议职责
有没有库/工具可以解决这样的问题,从而可以作为作业管理器?或者这都是一个大的反模式,我们应该用其他方式来做吗?
发布于 2015-07-17 19:59:20
你应该看看Gearman。
它由分配作业的client
、拾取和执行作业的一个或多个workers
以及维护功能(服务)和待处理作业列表的server
组成。如果一个工人死了,它将重新分配作业。
发布于 2015-07-17 19:05:39
您的工作人员听起来就像(api-less)服务本身。因此,您的需求可以重新表述为:
可以重新部署服务
使用Docker在主机上部署、运行和管理隔离进程。
发布于 2015-07-22 11:08:26
RabbitMq是一种简单的消息队列,非常容易上手。
https://stackoverflow.com/questions/31342583
复制相似问题