У меня есть приложение springBoot, которое имеет несколько бинов, которые запускаются и работают нормально. У него также есть один @Service
с @KafkaListener
, который мне нужен для запуска из основного потока.
KafkaListener не является потокобезопасным, и я думаю, что он не может быть @Async
. Я не хочу выделять много потоков, он может работать только в одном потоке.
SpringApplication.run(myApp.class, args);
}
@Service
public class SubscriberService {
@KafkaListener(topics = "symbols", groupId = "group_id", topicPartitions = {@TopicPartition(topic = "topicName", partitionOffsets = @PartitionOffset(partition = "#{topicUtil.getPartition()}", initialOffset = "0"))})
public void getSymbols(String message) throws IOException {
//do some stuff with each message from kafka
}
Что я могу сделать, чтобы пружина запустила это на собственной (единственной) нити от основной?