如何在我的Kafka流应用程序中引用自定义分区分组器?

时间:2017-12-15 05:24:01

标签: apache-kafka-streams

按主题名称而非分区ID自定义分组任务。

如何在我的Kafka流应用程序中引用我的自定义分区分组器类?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用流配置中的<div id="app"> <h1>Simple typeahead example</h1> <input placeholder="Search US states" @input="input" v-model="typeahead" /> <ul v-if="!selected && typeahead"> <li v-for="state in states | filterBy typeahead" @click="select(state)">{{ state }}</li> </ul> </div> 选项设置自定义分区分组器类。

然而,正如马蒂亚斯所说,除非你知道自己在做什么或想要学习什么,否则这是不可取的。也许你想要做的事情可以用其他方式完成?

答案 1 :(得分:0)

由于Kafka-Streams源代码(版本2.1.0)中存在错误,因此,您还需要添加带有使用者前缀的此配置,如下所示:

export const getTelevisionChannels = (televisionIds: string[]) => async (
  dispatch: Dispatch<AppState>
) => {
  try {
    const response = await API.post(
      "/Channels/querys/status",
      { body: JSON.stringify({ televisionIds }) },
      true,
      dispatch
    )
    const televisionChannels = await response.json()
    televisionChannels.map((televisionChannel: any) =>
      dispatch(
        getChannelsSuccess(televisionChannel.televisionId, televisionChannel.channels)
      )
    )
  } catch (err) {
    dispatch(push("/404"))
    console.log(err)
  }
}

添加使用者配置前缀的原因是Properties props = new Properties(); props.put(StreamsConfig.consumerPrefix(PARTITION_GROUPER_CLASS_CONFIG), CustomPartitionGrouper.class.getName()); props.put(StreamsConfig.PARTITION_GROUPER_CLASS_CONFIG, CustomPartitionGrouper.class.getName()); StickyTaskAssignor实例正在使用者初始化流程中初始化。没有前缀,使用者将忽略PartitionGrouper,并使用默认的PARTITION_GROUPER_CLASS_CONFIG类。