[
https://issues.apache.org/jira/browse/FLINK-37436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ferenc Csaky reassigned FLINK-37436:
------------------------------------
Assignee: Yubiao Feng
> flink-connector-pulsar used a incorrect API when dynamically creating topics
> by DynamicTopicRouter
> --------------------------------------------------------------------------------------------------
>
> Key: FLINK-37436
> URL: https://issues.apache.org/jira/browse/FLINK-37436
> Project: Flink
> Issue Type: Bug
> Components: Connectors / Pulsar
> Reporter: Yubiao Feng
> Assignee: Yubiao Feng
> Priority: Major
> Labels: pull-request-available
> Fix For: pulsar-4.2.0
>
>
> h3. Background 1: dynamically create a Pulsar Topic by Flink connector-pulsar
>
> Flink connector-pulsar provided a way to dynamically create a Pulsar Topic
> when DynamicTopicRouter returns a non-existing one. see also:
> [flink-connector-pulsar/flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/topic/ProducerRegister.java
> at main ·
> apache/flink-connector-pulsar|https://github.com/apache/flink-connector-pulsar/blob/main/flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/topic/ProducerRegister.java#L221].
>
> * `pulsarClient.getPartitionsForTopic(topic)` will create a topic
> automatically if it does not exist.
> h3. Background 2: how dynamically created topics in Pulsar Server
> - There is a config named `allowAutoTopicCreationType`, which can be set to `
> partitioned` or `non-partitioned`
> - If it was set `partitioned`, Pulsar will create a partitioned topic with `
> \{defaultNumPartitions}` partitions. For example, Pulsar will create topics
> named `\{tenant}/\{namespace}/\{topic name}-partition-0` and
> `\{tenant}/\{namespace}/\{topic name}-partition-1`, and create a relationship
> between them, which indicates they are in a same partitioned topic.
> - If it was set `non-partitioned`, Pulsar will create a non-partitioned
> topic. Pulsar will create topics named `\{tenant}/\{namespace}/\{topic
> name}`, which does not include a suffix `partition-\{num}`
>
> h3. Issue:
> - if `pulsarClient.getPartitionsForTopic(topic)` get a param
> `\{tenant}/\{namespace}/\{topic name}-partition-0`, which includes the suffix
> `partition-0`, Pulsar will create a non-partitioned topic named
> `\{tenant}/\{namespace}/\{topic name}-partition-0`
> - After you call `pulsarClient.getPartitionsForTopic(topic)` with a param
> `\{tenant}/\{namespace}/\{topic name}-partition-1`, you will get two
> partitions named `\{tenant}/\{namespace}/\{topic name}-partition-0` and
> `\{tenant}/\{namespace}/\{topic name}-partition-1`, but there is no
> relationship record between them.
>
>
>
>
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)