我用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");
}
我从site安装了Kafka:我正在使用CQRS模式,所以每个查询都是一个微服务,并命令另一个。我的问题很简单,为每个微服务我创建了一个Kafka主题?谢谢!
1条答案
按热度按时间flvlnr441#
把Kafka主题想象成一个数据库表,每种数据使用一个主题。
如果你想知道如何扩展你的应用程序,你可以问你的主题应该有多少个分区。一个主题是一组处理所有数据的分区。
请看下图,一个主题会从多个生成器接收值,并且它只有一种类型的消息。消息可以存储在任何分区中,这是由消息键定义的。