消费计算型项目应该如何启动部署

2021-04-25 20:51:52 +08:00
 unknowfly
需求:不断从 kafka 里获取一条一条人像数据(量很大),针对每一条调用算法模块分析得出结果然后存储

想法:
1. 简单通过进程池启动多个进程,每个进程做一个消费者
2. 通过 celery 启动间隔很小的定时任务

问题:
1 的问题:怎么监控和守护任务进程
2 的问题:担心消费速度过慢
其他问题:有无其他框架或者系统可以推荐
1468 次点击
所在节点    Python
11 条回复
ch2
2021-04-25 20:56:20 +08:00
1 没问题,你再加一张表来记录每个任务的状态就行了
0x0208v0
2021-04-25 21:09:38 +08:00
这是个复杂问题,首先算法模块部署到哪儿了?它的吞吐量是多少?会不会成为瓶颈。如果算法模块也在消费者那台机器上,就要考虑算法的资源占用情况了。
liprais
2021-04-25 21:27:57 +08:00
spark flink 都行
unknowfly
2021-04-25 21:56:51 +08:00
@v2exblog 目前的话是代码打包给我了,我是打算消费的同时计算,执行运行一次约 3~400 毫秒
czfy
2021-04-26 02:32:12 +08:00
人像数据是什么?人脸?
为什么是一条一条过算法?人脸验证?
akyle
2021-04-26 09:13:20 +08:00
为什么不可以先缓存再批量处理?
unknowfly
2021-04-26 09:38:19 +08:00
@czfy
@akyle
需求是摄像头里每路过一个人要一秒内给出这个人分析结果
ebingtel
2021-04-26 13:51:58 +08:00
多进程+多协程……supervisor 应该够了
mu666
2021-04-26 15:05:16 +08:00
歪楼,楼主用的摄像头能推荐一下吗?是能自动识别人脸上传吗?还是要自己分析是否存在人脸。我之前也想实现类似功能不过用的摄像头不太行,算法也不太行,最后放弃了
unknowfly
2021-04-26 15:41:18 +08:00
@mu666 我们从平台直接订阅数据的,没涉及到硬件
Alexf4
2021-04-26 16:54:26 +08:00
跟楼主做过类似的项目,当时是为了实时处理日志的情景。
1 Kafka 有个消费组的机制,我同一个 topic 有 N 个 parition, 每一个 partition 对应一个 python 进程( supervisor 管理所有的进程)。假如遇到了性能瓶颈就,新增 partition, 新增进程(包括机器)。这种比较简单粗暴
2 后面优化这种流程,换了 golang 了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/773203

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX