Сколько тем кафки создать для апи?

Я использую kafka для своего API. Я использую Spring с микросервисом. Я опубликую свой код kafka ниже:

Команда:

private static final Logger logger = 
        LoggerFactory.getLogger(UserCommandServiceImpl.class);

@Autowired
private KafkaTemplate<String, Object> kafkaTemplate;

public void sendMessage(User objeto) 
{
    
    logger.info(String.format("Message sent -> %s", objeto.toString()));
    this.kafkaTemplate.send("quickstart-events", objeto);

}

Запрос:

private final Logger logger = LoggerFactory.getLogger(UserQueryServiceImpl.class);

   
@Autowired
private MongoTemplate mongoTemplate;

@KafkaListener(topics = "quickstart-events" , groupId = "group-id")
public void consume(String message) 
{
    logger.info(String.format("Message recieved -> %s", message));
    mongoTemplate.insert(message, "user");
    
}

Я установил kafka с этого сайта: Я использую шаблон CQRS, поэтому каждый запрос представляет собой микросервис и командует другим. Мой вопрос прост: для каждого микросервиса я создаю тему кафки? Спасибо!

Не сериализуйте свои данные с помощью Jackson JSON. Взгляните на сериализатор ключей/значений для Kafka. Я считаю, что у Spring есть один для JSON.

Victor 17.10.2022 12:48

Я пытался использовать JsonSerializer и JsonDeserializer в своих «application.properties», но это дает ошибку

Rafael Souza 18.10.2022 01:05

Я обновил свой ответ новым кодом

Rafael Souza 18.10.2022 01:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Представьте тему Kafka в виде таблицы базы данных, используйте одну тему для каждого типа данных.

Если вам интересно, как вы можете масштабировать свое приложение, вы можете спросить, сколько разделов должно быть в вашей теме. Тема — это набор разделов, которые будут обрабатывать все данные.

Взгляните на изображение ниже, тема будет получать значения от более чем одного производителя, и у нее будет только один тип сообщения. Сообщение может храниться в любом разделе, и это определяется ключом сообщения.

Другие вопросы по теме