一、参数配置
spring:
kafka:
listener:
type: batch # 批量消费@KafkaLister监听
consumer:
bootstrap-servers: localhost:9092
group-id: hrfan-consumer-group
auto-offset-reset: earliest
key-deserializer: org.apache.kafka.common.serialization.StringSerializer
value-deserializer: org.springframework.kafka.support.serializer.JsonSerializer
properties:
spring.json.trusted.packages: '*' # 这个不配置,批量消费时候会认为对象的包名不可信错误
max-poll-records: 500 #拉取条数
producer:
bootstrap-servers: localhost:9092
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
二、性能优化
spring:
kafka:
producer:
bootstrap-servers: localhost:9092
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.springframework.kafka.support.serializer.JsonSerializer
acks: 1 #应答机制
batch-size: 32768 #批次大小
buffer-memory: 67108864 #累加器缓冲区大小
properties:
linger.ms: 50 #批次大小不满足,超过这个时间也会立即发消息
三、相关注解
1、@Payload 解析信息体绑定到熟悉上
2、@Header 绑定消息上其他熟悉
四、小代码
1、自动创建Topic
@Bean
public NewTopic newTopic(){
return new NewTopic("audit", 2, (short) 1);
}
/**
需配置adminClient 服务信息
*/
spring.kafka.admin.properties.bootstrap.servers = localhost:9092