前面咱們說了RabbitMQ和RocketMQ的安裝和簡單的使用,此次咱們說一下Kafka的安裝配置,後面我會用幾個真實案例來講一下MQ的真實使用場景。天冷了,不肯意伸手,最近沒怎麼寫博客了,還請見諒。html
1、目標java
1.知道什麼是Kafkaweb
2.懂得kafka的單機和集羣安裝配置apache
3.瞭解內部參數的簡單配置bootstrap
2、Kafka簡介vim
Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分佈式發佈訂閱消息系統,它能夠處理消費者在網站中的全部動做流數據。 這種動做(網頁瀏覽,搜索和其餘用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據一般是因爲吞吐量的要求而經過處理日誌和日誌聚合來解決。 對於像Hadoop同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是經過Hadoop的並行加載機制來統一線上和離線的消息處理,也是爲了經過集羣來提供實時的消息。——百度百科緩存
3、Kafka使用場景服務器
4、相關術語網絡
Kafka集羣包含一個或多個服務器,這種服務器被稱爲brokerapp
每條發佈到Kafka集羣的消息都有一個類別,這個類別被稱爲Topic。
Partition是物理上的概念,每一個Topic包含一個或多個Partition.
負責發佈消息到Kafka broker
消息消費者,向Kafka broker讀取消息的客戶端。
每一個Consumer屬於一個特定的Consumer Group(可爲每一個Consumer指定group name,若不指定group name則屬於默認的group)。
5、單機安裝
1.安裝jdk,輸入yum install -y java-1.8.0-openjdk* 耐心等待便可,安裝完成之後,輸入$ java -version,檢查是否安裝成功。
2.因爲Kafka是基於Zookeeper環境的,咱們安裝一下Zookeeper(不安裝也能夠,最好配置一下,便於後期理解,建議安裝3.*版本)。我之前寫過Zookeeper的安裝過程,想看的能夠去了解一下http://www.javashuo.com/article/p-cjpfwdqi-et.html
3.輸入wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz 等待下載完成,Kafka如今是0.*,1.*,2.*三個版本,這裏建議使用1.*版本,你也能夠下載最新的2.3.1版本,下載方式wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz,這裏說一下,kafka_2.12-2.3.1.tgz前面的2.12是Scala語言版本,後面的2.3.1纔是咱們的Kafka的版本。官網地址:http://kafka.apache.org/
4.解壓tar -zxvf kafka_2.11-1.1.0.tgz
5.進入到config目錄下,vim server.properties,咱們在123行能夠看到Zookeeper的配置以下(不是localhost的本身改一下)
6.啓動$ ./bin/kafka-server-start.sh -daemon config/server.properties
7.進入Zookeeper下查看節點信息。
輸入jps看到咱們的進程kafka,單機配置成功。
6、集羣安裝
1.重複單機安裝步驟。
2.修改配置文件,在21行broker.id設置爲不一樣的數字,第一臺能夠設置0,第二臺1,依次類推,在123行 zookeeper.connect寫入Zookeeper集羣鏈接,例如zookeeper.connect=47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181。
3.分別啓動三個Kafka。
4.測試集羣,建立一個主題./bin/kafka-topics.sh --create --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181 --replication-factor 1 --partitions 1 --topic test
到其它服務器下查看現有主題便可。
7、簡單使用
1.建立主題 ./bin/kafka-topics.sh --create --zookeeper IP:端口,IP:端口 --replication-factor 副本數 --partitions 分區數 --topic 主題名
例如:./bin/kafka-topics.sh --create --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181 --replication-factor 1 --partitions 1 --topic xiaocaijishu
2.查看現有主題 ./bin/kafka-topics.sh --list --zookeeper IP:端口,IP:端口
例如:./bin/kafka-topics.sh --list --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181
3.刪除主題 ./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper IP:端口,IP:端口
例如:./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181
4.發送消息 ./bin/kafka-console-producer.sh --broker-list Kafka服務器IP:9092 --topic 主題名
例如:./bin/kafka-console-producer.sh --broker-list 47.105.137.93:9092 --topic xiaocaijishu
5.消費消息./bin/kafka-console-consumer.sh --bootstrap-server Kafka服務器IP:9092 --consumer-property group.id=消費組名稱 --topic 主題名
例如: ./bin/kafka-console-consumer.sh --bootstrap-server 47.105.137.93:9092 --consumer-property group.id=xiaocaiGroup --topic xiaocaijishu
6.查看現有消費組 ./bin/kafka-consumer-groups.sh --bootstrap-server Kafka服務器IP:9092 --list
例如:./bin/kafka-consumer-groups.sh --bootstrap-server 47.105.137.93:9092 --list
最進弄了一個公衆號,小菜技術,歡迎你們的加入