本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《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));
}
}
執行結果: