日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kafka 安装和搭建 (一)

發布時間:2024/4/11 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kafka 安装和搭建 (一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kafka 安裝和測試

  • 博客分類:?
  • middleware
kafkazookeeperscalajvm? 1. 簡介?

kafka (官網地址:http://kafka.apache.org)是一款分布式消息發布和訂閱的系統,具有高性能和高吞吐率。?

?

i. 消息的發布(publish)稱作producer,消息的訂閱(subscribe)稱作consumer,中間的存儲陣列稱作broker。

ii. 多個broker協同合作,producer、consumer和broker三者之間通過zookeeper來協調請求和轉發。?

iii. producer產生和推送(push)數據到broker,consumer從broker拉取(pull)數據并進行處理。?

iv. broker端不維護數據的消費狀態,提升了性能。?

v. 直接使用磁盤進行存儲,線性讀寫,速度快:避免了數據在JVM內存和系統內存之間的復制,減少耗性能的創建對象和垃圾回收。?

vi. Kafka使用scala編寫,可以運行在JVM上。?

2. 安裝:?

a. 首先安裝JRE/JDK?

Linux安裝JDK?

b. 下載kafka?

進入下載頁面:http://kafka.apache.org/downloads.html?

選擇Binary downloads下載 (Source download需要編譯才能使用)?

也可以直接在linux終端下載:?
Shell代碼??
  • wget?-q?http://apache.fayea.com/apache-mirror/kafka/0.8.1/kafka_2.8.0-0.8.1.tgz??


  • c. 解壓?
    Shell代碼??
  • tar?-xzvf?kafka_2.8.0-0.8.1.tgz??
  • rm?kafka_2.8.0-0.8.1.tgz??
  • cd?kafka_2.8.0-0.8.1??


  • 目錄:?


    /bin 啟動和停止命令等。?
    /config 配置文件?
    /libs 類庫?

    d. 修改配置?
    Kafka默認開啟JVM壓縮指針,但只是在64位的HotSpot VM受支持,如果安裝了32位的HotSpot VM,需要修改/bin/kafka-run-class.sh文件?
    Shell代碼??
  • vi?bin/kafka-run-class.sh??


  • 找到如下行:?
    Sh代碼??
  • KAFKA_JVM_PERFORMANCE_OPTS="-server?-XX:+UseCompressedOops?-XX:+UseParNewGC?-XX:+UseConcMarkSweepGC?-XX:+CMSClassUnloadingEnabled?-XX:+CMSScavengeBeforeRemark?-XX:+DisableExplicitGC?-Djava.awt.headless=true"??

  • 去除-XX:+UseCompressedOops參數?

    3. 啟動和停止?

    啟動Zookeeper server:?
    Shell代碼??
  • bin/zookeeper-server-start.sh?config/zookeeper.properties?&??

  • &是為了能退出命令行?

    啟動Kafka server:?
    Shell代碼??
  • bin/kafka-server-start.sh?config/server.properties?&??


  • 停止Kafka server?
    Shell代碼??
  • bin/kafka-server-stop.sh??


  • 停止Zookeeper server:?
    Shell代碼??
  • bin/zookeeper-server-stop.sh??


  • 4. 單機連通性測試?

    運行producer:?
    Shell代碼??
  • bin/kafka-console-producer.sh?--broker-list?localhost:9092?--topic?test??

  • 早版本的Kafka,--broker-list localhost:9092需改為--zookeeper localhost:2181?

    運行consumer:?
    Shell代碼??
  • bin/kafka-console-consumer.sh?--zookeeper?localhost:2181?--topic?test?--from-beginning??

  • 在producer端輸入字符串并回車,查看consumer端是否顯示。?

    5. 分布式連通性測試?

    Zookeeper Server, Kafka Server, Producer都放在服務器server1上,ip地址為192.168.1.10?
    Consumer放在服務器server2上,ip地址為192.168.1.12。?

    分別運行server1的producer和server2的consumer,?
    Shell代碼??
  • bin/kafka-console-producer.sh?--broker-list?192.168.1.10:9092?--topic?test??


  • Shell代碼??
  • bin/kafka-console-consumer.sh?--zookeeper?192.168.1.10:2181?--topic?test?--from-beginning??


  • 在producer的console端輸入字符串,consumer報Connection refused錯誤:?


    broker, producer和consumer都注冊到zookeeper上,producer和consumer的參數明確指定。問題出在broker的配置文件server.properties上:?
    Properties代碼??
  • #?Hostname?the?broker?will?bind?to.?If?not?set,?the?server?will?bind?to?all?interfaces??
  • #host.name=localhost??

  • host名稱沒有指定,就是127.0.0.1,consumer去broker拿數據就有問題。設置為192.168.1.10,重啟服務就好了。 ==================================================================================================== 注意:配置的時候一定要把host.name這項打開,寫上真是IP,所有的配置項最好都寫真是IP,不要寫localhost或者127.0.0.1容易出幺蛾子.
    還有一個值得注意的問題是,按照上面的說的做,實際操作中發現,consumer消費消息的時候總是出錯,我弄了一邊又一遍,把zookeeper和kafka的版本換了又換弄了兩天才發現需要在系統下配置點東西才行,具體錯誤就是? InetAddress.getLocalHost() java.net.UnknownHostException 異常? java.net.InetAddress.getLocalHost會拋出java.net.UnknownHostException異常. 之類的,Java異常, 解決辦法: 在/etc/hosts 文件中添加如下(znskftc是主機名) 127.0.0.1 ? znskftc ================================================================== 多個broker時,shell版的producer應該鏈接哪個broker呢(producer和broker沒有負載均衡,consumer和broker的負載均衡有zookeeper來負責)? 鏈接哪個broker都可以的(實測),但是建立topic的時候replication-factor后面的數字要不能小于broker的數目? bin/kafka-topics.sh --create --zookeeper 172.16.6.78:2181 --replication-factor 1 --partitions 1 --topic test
    ================================================================== 后記: 若果看了上面的博客搭建還是失敗的話,建議看看下面這些視頻 kafka 消息處理過程與集群維護:
    http://www.jikexueyuan.com/course/2238.html

    Kafka 核心源碼剖析:
    http://www.jikexueyuan.com/course/2362.html

    Kafka 基礎實戰 :消費者和生產者實例:
    http://www.jikexueyuan.com/course/2036.html

    kafka的初認識
    http://www.jikexueyuan.com/course/1716.html

    kafka官方說明文檔(英文版,網上大多博客都是翻譯這篇文章的): http://kafka.apache.org/documentation.html#quickstart

    總結

    以上是生活随笔為你收集整理的Kafka 安装和搭建 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。