1. 程式人生 > >Kafka叢集Broker沒起到負載均衡作用

Kafka叢集Broker沒起到負載均衡作用

目前Kafka叢集部署了4個Broker節點,但在壓測的過程中,推送訊息到Kafka沒有起到負載均衡,都只推送到一臺Broker節點,

1、檢視推送程式物理機連線kafka埠6667的TCP連線,確實只有一臺

     [[email protected]~]#  ss -anp |grep ':6667' |grep '11314'     (Linux檢視方式)
     tcp    ESTAB      0      0      ::ffff:172.16.10.133:43760      ::ffff:172.16.10.166:6667         users:(("java",pid=11314,fd=551))
     C:\Users\jun>netstat -n |findstr ":6667"           (Windows檢視方式)
     TCP    172.16.80.126:59795    172.16.10.166:6667     ESTABLISHED


2、檢視topic分配的分割槽和Broker選擇Leader也都只有一臺borker=1001

      [[email protected] ~]# /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --describe --zookeeper 172.16.10.158:2181 --topic BuB
         Topic: BuB	PartitionCount:4	ReplicationFactor:4	         Configs:
	 Topic: BuB	Partition: 0	        Leader: 1001	 Replicas: 1001	Isr: 1001
	 Topic: BuB	Partition: 1	        Leader: 1001     Replicas: 1001	Isr: 1001
	 Topic: BuB	Partition: 2	        Leader: 1001     Replicas: 1001	Isr: 1001
	 Topic: BuB	Partition: 3	        Leader: 1001	 Replicas: 1001	Isr: 1001

3、如何讓Kafka叢集啟到多個Broker節點負載均衡的作用呢?

在 Kafka 叢集中,我們可以對每個 Topic 進行一個或是多個分割槽,併為該 Topic 指定備份數,指定備份數的時候,備份數要小於等於 Brokers 數。否則建立失敗。

其中為什麼備份數要小於等於Broker數,探究其中奧祕,修改備份引數:default.replication.factor=1個修改成了4個備份,Leader的選舉變成了4臺,

在重新整理物理機推送訊息與物理機的TCP連線,現在變成了4臺:

[[email protected]~]# ss -anp |grep ':6667' |grep 'pid=11314'
tcp    ESTAB      0      0      ::ffff:172.16.10.133:43760              ::ffff:172.16.10.166:6667                users:(("java",pid=11314,fd=551))
tcp    ESTAB      0      0      ::ffff:172.16.10.133:52254              ::ffff:172.16.10.168:6667                users:(("java",pid=11314,fd=549))
tcp    ESTAB      0      0      ::ffff:172.16.10.133:51814              ::ffff:172.16.10.167:6667                users:(("java",pid=11314,fd=548))
tcp    ESTAB      0      0      ::ffff:172.16.10.133:54038              ::ffff:172.16.10.169:6667                users:(("java",pid=11314,fd=550))

4、檢視topic分配的4個分割槽也對應到4個Broker節點
[[email protected]~]# /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --describe --zookeeper 172.16.10.158:2181 --topic BuB
Topic:BuB	PartitionCount:4	ReplicationFactor:4	Configs:
Topic: BuB	Partition: 0	Leader: 1001	Replicas: 1001,1002,1003,1004	Isr: 1001,1004,1002,1003
Topic: BuB	Partition: 1	Leader: 1002	Replicas: 1002,1003,1004,1001	Isr: 1002,1001,1004,1003
Topic: BuB	Partition: 2	Leader: 1003	Replicas: 1003,1004,1001,1002	Isr: 1003,1004,1002,1001
Topic: BuB	Partition: 3	Leader: 1004	Replicas: 1004,1001,1002,1003	Isr: 1004,1002,1001,1003

參考連結:http://www.cnblogs.com/smartloli/p/6012134.html

http://www.cnblogs.com/bonelee/p/6893286.html

總結:Kafka叢集Broker要起到負載均衡作用的效果,default.replication.factor 備份數必須>=2,若是很均衡所有Broker節點,那就備份數=Broker節點數 ,否則就能均衡數=備份數

手動敲命令新建topic是可以負載均衡,推測跟kafka叢集配置使用不當有關係

 ./kafka-topics.sh  --create --zookeeper 192.168.128.102:2181 --replication-factor 1  --partitions 2 --topic topic1 

最終排查,其實備份數只是備份多份資料用,是不會起到負載作用的,之所以會出現不負載這種場景,是因為在增加Borker節點的時候,加大分割槽數重啟Kafka服務,topic已分配好的分割槽數沒變更,所以直接通過Zookeeper命令刪除所有topic是不可取的(rmr /broker),因為用命令直接刪除zookeeper資料會刪除不乾淨影響到kafka的leader負載均衡的選舉,之後通過kafka的delete命令刪除解決負載均衡的問題。

 ./kafka-topics.sh --delete --zookeeper 172.16.10.157:2181 --topic BuB # 刪除分割槽
 ./kafka-preferred-replica-election.sh --zookeeper 172.16.10.157:2181 # 重新分割槽


注意:如果是多個kafka的broker節點,要關閉其中幾個broker節點,通過kafka delete刪除還是無效,會提示刪除已被標誌了,要快速刪除,還是得到zookeeper上面進行直接刪除。

======================================================================================================================

之後發現一個問題:kafka重新啟動後,主題的分割槽分佈又重新分配,有的節點只有分配3個分割槽,有的節點分配5個分割槽。


相關推薦

Kafka叢集Broker起到負載均衡作用

目前Kafka叢集部署了4個Broker節點,但在壓測的過程中,推送訊息到Kafka沒有起到負載均衡,都只推送到一臺Broker節點,1、檢視推送程式物理機連線kafka埠6667的TCP連線,確實只有一臺 [[email protected]~]#

Kafka叢集生產/消費的負載均衡(Rebalance)測試

基於Kafka客戶端的高階API,配合zookeeper的使用,可以有效的實現Kafka叢集的Rebalance,提高生產環境下的健壯性。本文使用librdkafka(https://github.com/edenhill/librdkafka) 提供的高階AP

Kafka整體結構圖 Consumer與topic關係 Kafka訊息分發 Consumer的負載均衡 Kafka檔案存

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

kafka叢集Broker端基於Reactor模式請求處理流程深入剖析-kafka商業環境實戰

本套技術專欄是作者(秦凱新)平時工作的總結和昇華,通過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和叢集環境容量規劃等內容,請持續關注本套部落格。期待加入IOT時代最具戰鬥力的團隊。QQ郵箱地址:[email protected],如有任何學術交流,可隨時聯絡。

搭建linux伺服器叢集,簡單實現,負載均衡,動靜分離,資料主從複製,分散式快取,共享session回話。

負載均衡方案: nignx  應用層負載均衡      優點:配置簡單 缺點:均衡效能一般 有流量消耗  基於反向代理 LVS    網路層負載均衡 優點:配置複雜 缺點:作

負載叢集實戰之lvs負載均衡-技術流ken

LVS的英文全稱是Linux Virtual Server,即Linux虛擬伺服器。 特點 跨平臺:window,linux 作用 實現負載均衡 核心元件 ip_vs:linux的核心功能模組,工作在核心,依賴該核心模組實現負載均衡功能 ipvsadm:應用層程式,該程式可以和核心中的ip_vs模組通訊,實

叢集、分散式、負載均衡區別

叢集 叢集的概念   計算機叢集通過一組鬆散整合的計算機軟體和/或硬體連線起來高度緊密地協作完成計算工作。在某種意義上,他們可以被看作是一臺計算機。集群系統中的單個計算機通常稱為節點,通常通過區域網連線,但也有其它的可能連線方式。叢集計算機通常用來改進單個

使用Mycat叢集部署及Haproxy負載均衡

目的 外界將讀寫請求發給Haproxy,Haproxy將請求分發給mycat可用節點,mycat伺服器再根據讀或寫向mysql伺服器進行資料操作。 前提 在之前mycat代理mysql讀寫分離的基礎上進行配置 haproxy 119.23.237.241  mycat_

kafka叢集Broker端引數設定及調優準則建議-kafka 商業環境實戰

1 Distributed streaming platform Apache Kafka® is a distributed streaming platform. What exactly d

tomcat叢集環境下實現負載均衡、session共享

一、 高可用      高可用HA(High Availability)是分散式系統穩定執行必須考慮的因素之一,它指的是通過處理減少系統不能提供服務的時間。比如說系統能夠一直正常提供服務,我們就說這個系統可用性為100%。      我們知道,單點系統是高可用的公敵,線上系統應該儘量避免

MySQL-Cluster三機叢集+HA高可用+負載均衡配置手冊

本文中的配置已經在實驗室進行過效能測試、可靠性測試驗證。 一、介紹 這篇文件旨在介紹如何安裝配置基於3臺伺服器的MySQL叢集。並且實現任意一臺伺服器出現問題或宕機時MySQL叢集依然能夠繼續執行。 1. MySQL-Cluster簡介 MySQL-Cluster主要有三種

Apache2.4配置叢集,做網路負載均衡

由於需要,臨時搭建了一個系統,因為使用的是雲主機,頻寬不夠,於是相到將2臺雲主機,通過配置Apache2.4叢集來減緩伺服器壓力,結果碰了一大堆坑。 具體講一下我的實施過程: 2臺伺服器:2核4G,4M頻寬,win2008r2 環境:Apache24+php7+mysq

apache+tomcat叢集搭建,包括負載均衡

傳統的Java Web專案是通過tomcat來執行和釋出的。但在實際的企業應用環境中,採用單一的tomcat來維持專案的執行是不現實的。tomcat 處理能力低,效率低,承受併發小(1000左右)。當用戶請求較少時,單一的tomcat能夠快速響應使用者請求,但如果訪問量一大,tomcat處理能力跟不上,

dubbo 學習(4) 叢集容錯模式和負載均衡模式

一、叢集模式 呼叫服務提供者的時候,dubbo提供了各種容錯模式。保證獲取到可用的服務。 各節點關係: 這裡的Invoker是Provider的一個可呼叫Service的抽象,Invoker封裝了Provider地址及Service介面資訊。Directory代表多個

Apache+Tomcat叢集實現反向代理負載均衡

一. Apache+Tomcat叢集實現反向代理的負載均衡的原理: Apache作為排程器,轉發HTTP請求。然後等待實際伺服器的HTTP響應,並轉發給使用者。 Tomcat叢集作為實際的伺服器,處理HTTP請求。二. 需要安裝的程式: 1. Apache2.2.4 2.

微服務-如何做好叢集中伺服器的負載均衡

那些負載均衡的面試題 簡單說一下什麼是負載均衡?很多人最怕這種概念性問題 你們公司負載均衡用的什麼? 為什麼用這種? 它的優缺點 有更好的選擇嗎? 你說這5聯問,誰受得了啊,叢淺到深,一環扣一環,簡直不要了,別怕,仔細閱讀本文,這些問題都會迎刃而解。 什麼是負載均衡? 俗話解釋一下負載均衡:你要在10個餐廳中

kafka的partition如何分佈到不同的broker上,consumerGroup組員和partition之間如何做負載均衡kafka常用命令

1、partition如何分佈到不同的broker上下面給出kafka在實現分割槽分佈到各個broker上的演算法實現,可以通過建立topic,設定副本數驗證public void kafkaProducter(){ //partitions建立的分割槽,比如

kafka broker節點負載均衡失效

一大早上班,運維就給我發訊息,說一臺主機磁碟爆了,登上去一看 使用率100%,直接嚇尿,發現是我的一臺kafka主機,這是個kafka叢集,共3臺,再登入其他2臺,發現磁碟使用率才10%,高可用呢???? 立馬覺得不對,百度沒搜到啥,Google了下,說是沒開啟高可用

不懂高性能的負載均衡設計?關系,架構師帶你飛

訪問速度 便宜 webp gcj load lib 我們 gin 本質 在軟件系統的架構設計中,對集群的負載均衡設計是作為高性能系統優化環節中必不可少的方案。負載均衡本質上是用於將用戶流量進行均衡減壓的,因此在互聯網的大流量項目中,其重要性不言而喻。 一、什麽是負載均衡?

apache負載均衡和tomcat6叢集和session複製

系統環境:Windows XP SP3 ,jdk1.5.0_05 軟體版本:apache_2.2.11-win32-x86-openssl-0.9.8i.msi apache-tomcat-6.0.16 apache-tomcat-6.0.18 備註:tomcat可以下載壓縮包