如何同时启动多个Faust应用?启动OSError问题求助
解决多Faust应用同时运行的OSError问题
核心原因
多个Faust应用同时运行时,默认会占用相同的Web监控端口(默认6066)和Worker内部通信端口,导致端口冲突触发OSError。另外,应用ID重复也可能引发资源竞争问题。
解决方案
为每个应用指定唯一的端口
在初始化faust.App时,显式设置不同的web_port和worker_port参数,避免端口抢占:# 第一个应用 app = faust.App( 'UserInfoReceive', broker= 'kafka://' + SERVER_INPUT + f':{DVWAP_KAFKA_PORT}', value_serializer='raw', web_port=6066, worker_port=6067, ) # 第二个应用 app = faust.App( 'OrderInfoReceive', broker= 'kafka://' + SERVER_INPUT + f':{DVWAP_KAFKA_PORT}', value_serializer='raw', web_port=6068, worker_port=6069, ) # 第三个应用 app = faust.App( 'ProductInfoReceive', broker= 'kafka://' + SERVER_INPUT + f':{DVWAP_KAFKA_PORT}', value_serializer='raw', web_port=6070, worker_port=6071, )确保每个应用ID唯一
每个faust.App的第一个参数(应用标识)必须独一无二,不能重复使用UserInfoReceive这类名称,否则会导致Faust内部资源冲突。验证Kafka连接权限
确认WSL环境下的Python进程有权限访问Kafka服务端口,可通过telnet SERVER_INPUT DVWAP_KAFKA_PORT测试连通性,排除网络层面的权限问题。
内容的提问来源于stack exchange,提问作者ShanN
相关产品推荐
相关产品推荐

