maven依赖:
org.springframework.kafka
spring-kafka
2.2.14.RELEASE
com.fasterxml.jackson.core
jackson-core
2.11.1
序列化在yml中配置:
spring:
kafka:
bootstrap-servers: localhost:9092
consumer:
group-id: myGroup
producer:
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
反序列化:
@Bean
publicRecordMessageConverter converter() {
ObjectMapper mapper = newObjectMapper();
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); // 下划线转驼峰
return newStringJsonMessageConverter(mapper);
}
新增topic:
@Bean
publicNewTopic topic() {
return new NewTopic("my-test-topic", 1, (short) 1);
}
测试生产者消费者:
@Component
public class KafkaTest {
@Autowired
private KafkaTemplate template;
/**
* 接收topic为database.table的消息并将消息转发到另一个topic:my-test-topic
*/
@KafkaListener(topics = "database.table")
public void process(MysqlSourceEvent record) {
template.send("my-test-topic", record);
}
}