天天看點

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

上一篇:SpringBoot怎樣整合RabbitMQ? | 帶你讀《SpringBoot實戰教程》之三十六 下一篇:SpringBoot如何實作Solr? | 帶你讀《SpringBoot實戰教程》之三十八

本文來自于千鋒教育在阿裡雲開發者社群學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔,

點選檢視視訊内容

Kafka概述及安裝

Apache Kafka是一個分布式釋出 - 訂閱消息系統和一個強大的隊列,可以處理大量的資料,并使您能夠将消息從一個端點傳遞到另一個端點。 Kafka适合離線和線上消息消費。 Kafka消息保留在磁盤上,并在群集内複制以防止資料丢失。 Kafka建構在ZooKeeper同步服務之上。 它與Apache Storm和Spark非常好地內建,用于實時流式資料分析。

以下是Kafka的幾個好處:

  • 可靠性 - Kafka是分布式,分區,複制和容錯的。
  • 可擴充性 - Kafka消息傳遞系統輕松縮放,無需停機。
  • 耐用性 - Kafka使用分布式送出日志,這意味着消息會盡可能快地保留在磁盤上,是以它是持久的。
  • 性能 - Kafka對于釋出和訂閱消息都具有高吞吐量。 即使存儲了許多TB的消息,它也保持穩定的性能。Kafka非常快,并保證零停機和零資料丢失。

安裝:

Linux系統下安裝

首先在官網下載下傳kafka以及zookeeper的安裝包

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

二者直接進行解壓縮:

運作kafka必須先運作zookeeper。

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

進入到zookeeper的bin目錄下

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

運作zkServer.sh,注意需要提前把JDK配置好

指令為

./ zkServer.sh start

然後運作

./ zkServer.sh status

檢視啟動狀态

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

顯示standalone表示啟動成功了。

然後進入kafka的bin目錄下

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

然後啟動kafka,注意啟動時需引用配置檔案 指令為

./ kafka-server-start.sh ../../config/ sever.properties

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

出現如下情況,證明啟動成功了。

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

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));
    }
}           

執行結果:

Kafka概述及安裝 | 帶你讀《SpringBoot實戰教程》之三十七

配套視訊