Another strategy to handle dynamic topics:
SInce Spring Kafka MessageListenerContainer holds a list of topics, can we
simply add a new topic into the existing container at runtime?
Does the existing listener container object require a manual stop/start
after its topic list changes?

thanks,
-aj



On Fri, Jun 12, 2020 at 3:25 PM AJ Chen <ajc...@web2express.org> wrote:

> I figured out this approach to consume new topics that become available at
> runtime:
> 1. create ConcurrentMessageListenerContainer for each new topic, call
> start() to start listening.
> 2. track all containers in a map, which listen and consume messages from
> the assigned topics.
> 3. call container.stop() when shutdown.
>
> Is there anything important I should add to make it more robust?
> Appreciate any suggestions.
>
> -aj
>
> On Fri, Jun 12, 2020 at 12:55 PM AJ Chen <ajc...@web2express.org> wrote:
>
>> Thanks, Boyang.
>>
>> Spring''s KafkaTemplate can easily create new topic on the flight
>> already.
>>
>> On consumer side, is there java sample code to replace this annotation?
>> That will create a new listener for a new topic and group-id on the
>> fliight.
>>  @KafkaListener(topics = "test", groupId = "grp0")
>>
>> -aj
>>
>> On Fri, Jun 12, 2020 at 9:30 AM Boyang Chen <reluctanthero...@gmail.com>
>> wrote:
>>
>>> Hey AJ,
>>>
>>> you should be able to make the subscribed topics and output topics
>>> dynamic
>>> configs for Consumer and Producer. If you need to create new topics on
>>> runtime, there is some broker side setting you could use to allow topic
>>> creation based of produced records:
>>>
>>> https://stackoverflow.com/questions/36441768/how-to-create-topics-in-apache-kafka
>>>
>>> On Fri, Jun 12, 2020 at 9:01 AM AJ Chen <cano...@gmail.com> wrote:
>>>
>>> > I'm working on a data streaming system where users will publish to
>>> > different new topics and subscribe to different new topics without
>>> > restarting the system. A large number of topics will be created over
>>> time.
>>> > Uer will choose different new topics to publish and subscribe
>>> dynamically
>>> > at runtime. Can someone share good design or practice to implement such
>>> > dynamic topic handling? Links to sample code will be very helpful.
>>> >
>>> > Thanks,
>>> > aj
>>> >
>>>
>>

Reply via email to