本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔,
點選檢視視訊内容。
Kafka概述及安裝
Apache Kafka是一個分布式釋出 - 訂閱消息系統和一個強大的隊列,可以處理大量的資料,并使您能夠将消息從一個端點傳遞到另一個端點。 Kafka适合離線和線上消息消費。 Kafka消息保留在磁盤上,并在群集内複制以防止資料丢失。 Kafka建構在ZooKeeper同步服務之上。 它與Apache Storm和Spark非常好地內建,用于實時流式資料分析。
以下是Kafka的幾個好處:
- 可靠性 - Kafka是分布式,分區,複制和容錯的。
- 可擴充性 - Kafka消息傳遞系統輕松縮放,無需停機。
- 耐用性 - Kafka使用分布式送出日志,這意味着消息會盡可能快地保留在磁盤上,是以它是持久的。
- 性能 - Kafka對于釋出和訂閱消息都具有高吞吐量。 即使存儲了許多TB的消息,它也保持穩定的性能。Kafka非常快,并保證零停機和零資料丢失。
安裝:
Linux系統下安裝
首先在官網下載下傳kafka以及zookeeper的安裝包

二者直接進行解壓縮:
運作kafka必須先運作zookeeper。
進入到zookeeper的bin目錄下
運作zkServer.sh,注意需要提前把JDK配置好
指令為
./ zkServer.sh start
然後運作
./ zkServer.sh status
檢視啟動狀态
顯示standalone表示啟動成功了。
然後進入kafka的bin目錄下
然後啟動kafka,注意啟動時需引用配置檔案 指令為
./ kafka-server-start.sh ../../config/ sever.properties
出現如下情況,證明啟動成功了。
SpringBoot整合Kafka
添加依賴:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.1.1.RELEASE</version>
</dependency>
全局配置application.yml:
spring:
kafka:
producer:
bootstrap-servers: 192.168.25.130:9092
consumer:
group-id: springboot-group1
auto-offset-reset: earliest
建立包:com.qianfeng.kafka
@Component
@EnableScheduling
public class KafkaProducer {
@Autowired
private KafkaTemplate kafkaTemplate;
@Scheduled(cron = "00/1 * * * * ?")
public void send() {
String msg=UUID.randomUUID().toString();
//發送消息
ListenableFuture future = kafkaTemplate.send("tests", msg);
future.addCallback(o -> System.out.println("send-消息發送成功:" + msg), throwable -> System.out.println("消息發送失敗:" + msg));
}
}
執行結果: