開發與維運

Kafka概述及安裝

本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《SpringBoot實戰教程》,主講人楊紅豔,點擊查看視頻內容

Kafka概述及安裝

Apache Kafka是一個分佈式發佈 - 訂閱消息系統和一個強大的隊列,可以處理大量的數據,並使您能夠將消息從一個端點傳遞到另一個端點。 Kafka適合離線和在線消息消費。 Kafka消息保留在磁盤上,並在群集內複製以防止數據丟失。 Kafka構建在ZooKeeper同步服務之上。 它與Apache Storm和Spark非常好地集成,用於實時流式數據分析。

以下是Kafka的幾個好處:

  • 可靠性 - Kafka是分佈式,分區,複製和容錯的。
  • 可擴展性 - Kafka消息傳遞系統輕鬆縮放,無需停機。
  • 耐用性 - Kafka使用分佈式提交日誌,這意味著消息會儘可能快地保留在磁盤上,因此它是持久的。
  • 性能 - Kafka對於發佈和訂閱消息都具有高吞吐量。 即使存儲了許多TB的消息,它也保持穩定的性能。Kafka非常快,並保證零停機和零數據丟失。

安裝:
Linux系統下安裝
首先在官網下載kafka以及zookeeper的安裝包
image.png
二者直接進行解壓縮:
運行kafka必須先運行zookeeper。
image.png
進入到zookeeper的bin目錄下
image.png
運行zkServer.sh,注意需要提前把JDK配置好
命令為./ zkServer.sh start
然後運行./ zkServer.sh status 查看啟動狀態
image.png
顯示standalone表示啟動成功了。

然後進入kafka的bin目錄下
image.png
然後啟動kafka,注意啟動時需引用配置文件 命令為 ./ kafka-server-start.sh ../../config/ sever.properties
image.png
出現如下情況,證明啟動成功了。
image.png

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

執行結果:
image.png

配套視頻

Leave a Reply

Your email address will not be published. Required fields are marked *