Kafka在大型网站中应用广泛,主要用来日志收集和消息系统。
Kafka是一种发布-订阅的消息系统,生产者称发布者,消费者称订阅者。
下面先介绍Kafka实例类属性及配置:
@ConfigurationProperties(prefix = "kafka.producer")
@Data(这是Lambok插件的简单应用)
public class KafkaProducerProperties {
/**
* servers
*/
private String servers;
/**
* retries
*/
private int retries;
/**
* batchSize
*/
private int batchSize;
/**
* bufferMemory
*/
private int bufferMemory;
/**
* autoCommitInterval
*/
private String autoCommitInterval;
/**
* sessionTimeout
*/
private String sessionTimeout;
/**
* autoOffsetReset
*/
private String autoOffsetReset;
/**
* groupId
*/
private String groupId;
/**
* concurrency
*/
private int concurrency;
/**
* pollTimeout
*/
private int pollTimeout;
}
Kafka生产者的实例:
@Configuration
@EnableConfigurationProperties(KafkaProducerProperties.class)
@EnableKafka
public class KafkaProducerConfig {
/**
* properties
*/
@Autowired
KafkaProducerProperties properties;
@Autowired
private KafkaSendResultHandler kafkaSendResultHandler;
/**
*
* 〈一句话功能简述〉 〈功能详细描述〉
*
* @return props
*/
public Map producerConfigs() {
Map props = new HashMap<>();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, properties.getServers());
props.put(ProducerConfig.RETRIES_CONFIG, properties.getRetries());
props.put(ProducerConfig.BATCH_SIZE_CONFIG, properties.getB