Kafka的簡單原理及測試

2021-10-09 18:07:53 字數 3092 閱讀 3111

訊息生產者,發布訊息到 kafka 集群的終端或服務。

2)broker:

kafka 集群中包含的伺服器。

3)topic:

每條發布到 kafka 集群的訊息屬於的類別,即 kafka 是面向 topic 的。

4)partition:

partition 是物理上的概念,每個 topic 包含乙個或多個 partition。kafka 分配的單位是 partition。

5)consumer:

從 kafka 集群中消費訊息的終端或服務。

6)consumer group:

high-level consumer api 中,每個 consumer 都屬於乙個 consumer group,每條訊息只能被 consumer group 中的乙個 consumer 消費,但可以被多個 consumer group 消費。

7)replica:

partition 的副本,保障 partition 的高可用。

8)leader:

replica 中的乙個角色, producer 和 consumer 只跟 leader 互動。

9)follower:

replica 中的乙個角色,從 leader 中複製資料。

10)controller:

kafka 集群中的其中乙個伺服器,用來進行 leader election 以及 各種 failover。

11)zookeeper:

kafka 通過 zookeeper 來儲存集群的 meta 資訊。

kafka將所有訊息組織成多個topic的形式儲存,而每個topic又可以拆分成多個partition,每個partition又由乙個乙個訊息組成。每個訊息都被標識了乙個遞增序列號代表其進來的先後順序,並按順序儲存在partition中。

1、partitions:指定partition分割槽個數(topicname.partitions=xx)

2、buffer.memory:用於指定producer端用於快取訊息的緩衝區大小(kafka.producer.buffer.memory=33554432)

3、max.request.size:決定了每次傳送給kafka伺服器請求的最大大小

4、batch.size:producer會把發往同一分割槽的多條訊息封裝進乙個batch中,當batch滿了後,producer才會把訊息傳送出去(kafka.producer.batch.size=16384)

5、linger.ms:決定最多過多久,不管這個batch有沒有寫滿,都必須傳送出去了(kafka.producer.linger.ms=1)

6、acks:控制訊息的永續性,目前提供了3個取值(kafka.producer.acks=0)

1)acks = 0: 表示produce請求立即返回,不需要等待leader的任何確認。這種方案有最高的吞吐率,但是不保證訊息是否真的傳送成功。

2)acks = -1: 表示分割槽leader必須等待訊息被成功寫入到所有的isr副本(同步副本)中才認為produce請求成功。這種方案提供最高的訊息永續性保證,但是理論上吞吐率也是最差的。

3)acks = 1: 表示leader副本必須應答此produce請求並寫入訊息到本地日誌,之後produce請求被認為成功。如果此時leader副本應答請求之後掛掉了,訊息會丟失。這是個這種的方案,提供了不錯的永續性保證和吞吐

8、retries:producer重試的次數設定(kafka.producer.retries=0)

kafka自帶兩個效能測試指令碼:

1、kafka-producer-perf-test.sh引數

說明--topic

指定topic名稱

--num-records

傳送的總訊息條數

--record-size

傳送訊息的大小,單位bytes

--producer-props

設定producer的引數,可新增多個值,

如bootstrap.servers=kafka1:9092設定broker的位址

--throughput

吞吐量限制,-1表示無限制

例:sh kafka-producer-perf-test.sh --topic mysecondtest --num-records 10000000 --record-size 100 --producer-props bootstrap.servers=kafka1:9092,kafka2:9092,kafka3:9092 acks=0 batch.size=16384 linger.ms=1 buffer.memory=33554432 retries=0 --throughput -1

2、kafka-consumer-perf-test.sh引數

說明--topic

指定消費的topic名稱

--broker-list

broker的列表

--message-size

訊息大小,單位bytes

--messages

消費的訊息條數

--group

指定consumer group

--threads

設定消費的執行緒數

例:sh kafka-consumer-perf-test.sh --broker-list kafka1:9092,kafka2:9092,kafka3:9092 --message-size 10000 --messages 100000 --topic mysecondtest --group test-consumer-group --threads 1

Kafka的安裝和簡單例項測試及遇到的問題

安裝的命令如下 這樣,kafka基本就算是安裝好了。接下來,進行一些簡單的測試 首先新開啟乙個終端,輸入 cd usr local kafka bin zookeeper server start.sh config zookeeper.properties 這個目的是啟動zookeeper伺服器。...

kafka集群的搭建及測試(20191218更新)

20191218更新 目前複習到kafka集群,然後回來看了看之前寫的這篇文章。真的是寫的亂七八糟,向之前所有搜到這篇文章的童鞋致歉!又重新整理了一篇 kafka集群 偽分布式 的搭建及整合springboot 比這篇有條理,也算是隨著年齡增長,自己也在進步吧。o o 以下是原回答 準備工作 kaf...

Kafka簡介,安裝及簡單的操作

kafka的介紹 kafka 是分布式發布 訂閱訊息系統,即,kafka是一種分布式的訊息佇列工具。kafka特點 a.高吞吐量 kafka每秒可以生產約25萬訊息 50mb 每秒可以處理55萬訊息 110mb b.持久化資料儲存 可進行持久化操作。將訊息持久化到磁碟,按順序讀寫。據測試按順序磁碟讀...