Kafka性能白皮書
更新時間 2024-09-05 18:05:24
最近更新時間: 2024-09-05 18:05:24
分享文章
測試場景
- 測試場景一(實例是否開啟SASL):相同的Topic,實例分為開啟SASL和未開啟SASL
- 測試場景二(同步/異步復制):相同的實例,不同復制機制的Topic
- 測試場景三(不同磁盤類型):相同的Topic,不同磁盤類型的實例
- 測試場景四(不同分區數):相同的實例,不同分區數的Topic
測試環境
步驟一:購買實例
| 名稱 | 節點數量 | 規格 | 磁盤類型 | 磁盤空間 |
|---|---|---|---|---|
| kafka-01 | 3 | 計算增強型4核8GB | 超高IO | 500GB |
| kafka-02 | 3 | 計算增強型8核16GB | 超高IO | 500GB |
| kafka-03 | 3 | 計算增強型16核32GB | 超高IO | 500GB |
| kafka-04 | 3 | 計算增強型4核8GB | 高IO | 500GB |
| kafka-05 | 3 | 計算增強型8核16GB | 高IO | 500GB |
| kafka-06 | 3 | 計算增強型16核32GB | 高IO | 500GB |
步驟二:創建Topic
| 名稱 | 副本數 | 分區數 | 是否為私有主題 |
|---|---|---|---|
| topic-01 | 3 | 30 | 否 |
| topic-02 | 3 | 3 | 否 |
| topic-03 | 3 | 12 | 否 |
| topic-04 | 3 | 100 | 否 |
步驟三:獲取測試工具
點擊獲取命令行工具kafka_2.13-2.8.2.tgz。
步驟四:購買客戶端服務器
購買3臺ECS服務器(資源池、可用區、虛擬私有云、子網、安全組與Kafka實例保持一致,帶寬要大于等于Kafka實例帶寬)
購買完成后需要進行如下操作:
-
安裝JDK
yum install -y java-1.8.0-openjdk-devel.x86_64 -
下載Kafka命令行工具并解壓
tar -zxvf kafka_2.13-2.8.2.tar.gz
步驟五:測試命令
./kafka-producer-perf-test.sh --producer-props bootstrap.servers=${連接地址} acks=1 batch.size=16384 --topic ${Topic名稱} --num-records 5000000 --record-size 1024 --throughput -1 --producer.config ../config/producer.properties
- bootstrap.servers:購買Kafka實例后,獲取的Kafka實例的地址。
- acks:消息主從同步策略,acks=1表示異步復制消息,acks=-1表示同步復制消息。
- batch.size:每次批量發送消息的大小(單位為字節)。
- topic:創建Topic中設置的Topic名稱。
- num-records:總共需要發送的消息數。
- record-size:每條消息的大小。
- throughput:每秒發送的消息數,-1表示不作限制。
測試結果
測試場景一(實例是否開啟SASL):相同的Topic(30分區,3副本,異步復制)
| 實例規格 | 磁盤類型 | 節點數量 | TPS(使用SASL) | TPS(不使用SASL) |
|---|---|---|---|---|
| 計算增強型4核8GB | 超高IO | 3 | 170000 | 500000 |
| 計算增強型8核16GB | 超高IO | 3 | 200000 | 730000 |
| 計算增強型16核32GB | 超高IO | 3 | 360000 | 886000 |
測試場景二(同步/異步復制):相同的實例(超高I/O、3個節點、不使用SASL)
| 實例規格 | 分區數 | 副本數 | TPS(同步復制) | TPS(異步復制) |
|---|---|---|---|---|
| 計算增強型4核8GB | 30 | 3 | 238000 | 500000 |
| 計算增強型8核16GB | 30 | 3 | 315000 | 730000 |
| 計算增強型16核32GB | 30 | 3 | 375000 | 886000 |
測試場景三(不同磁盤類型):相同的Topic(30分區,3副本,異步復制)
| 實例規格 | 是否使用SASL | 節點數量 | TPS(高IO) | TPS(超高IO) |
|---|---|---|---|---|
| 計算增強型4核8GB | 不使用 | 3 | 135000 | 500000 |
| 計算增強型8核16GB | 不使用 | 3 | 240000 | 730000 |
| 計算增強型16核32GB | 不使用 | 3 | 280000 | 886000 |
測試場景四(不同分區數):相同的實例(超高I/O、3個節點、不使用SASL)
| 實例規格 | 是否同步復制 | 副本數 | TPS(3分區) | TPS(12分區) | TPS(100分區) |
|---|---|---|---|---|---|
| 計算增強型4核8GB | 否 | 3 | 330000 | 280000 | 260000 |
| 計算增強型8核16GB | 否 | 3 | 480000 | 410000 | 340000 |
| 計算增強型16核32GB | 否 | 3 | 534000 | 744000 | 630000 |