Flume序列化器将按顺序将捕获组分配给序列化器。您只看到第一个结果,因为您只定义了一个序列化程序。您有两种选择:
捕获一个捕获组中的所有货币
a.sources.s.interceptors.i.regex = ^(EUR|USD|(?:!EUR|USD).*)
或者单独捕获所有货币,并为每个捕获组添加序列化程序
a.sources.s.interceptors.i.regex = ^(EUR)|^(USD)|^(?!EUR|USD).* a.sources.s.interceptors.i.excludeEvents = false a.sources.s.interceptors.i.serializers = t1 t2 t3 a.sources.s.interceptors.i.serializers.t1.name = currency1_EUR a.sources.s.interceptors.i.serializers.t2.name = currency1_USD a.sources.s.interceptors.i.serializers.t3.name = currency2_XXX