升級Kafka實例內核版本,指的是將老的內核版本升級到最新的內核版本,升級后,Kafka實例將支持一些新的特性(例如支持在控制臺創建消費組、支持查看Topic詳情等),并且修復老版本的一些問題。
升(sheng)(sheng)級Kafka實例內核(he)版(ban)(ban)本(ben)并不會(hui)升(sheng)(sheng)級Kafka實例的大版(ban)(ban)本(ben),例如升(sheng)(sheng)級前Kafka版(ban)(ban)本(ben)為2.7,升(sheng)(sheng)級內核(he)版(ban)(ban)本(ben)后,Kafka版(ban)(ban)本(ben)還(huan)是2.7。
升級內核版本的影響
若Topic為單副本,升級期間無法對(dui)該Topic生產消(xiao)息(xi)或消(xiao)費消(xiao)息(xi),會造成業務中斷。
若Topic為多副本,升(sheng)級(ji)不會造成服務中斷(duan),但會逐個節(jie)(jie)點重啟,負載會轉移到剩余節(jie)(jie)點上,建議您在業務低(di)峰期升(sheng)級(ji)。
升(sheng)(sheng)級過(guo)程(cheng)中會逐個節點(dian)升(sheng)(sheng)級,單個節點(dian)的升(sheng)(sheng)級包(bao)括兩部分:升(sheng)(sheng)級軟(ruan)件(jian)包(bao)和數(shu)據同(tong)步。升(sheng)(sheng)級軟(ruan)件(jian)包(bao)耗時在5分鐘左(zuo)右(you),數(shu)據同(tong)步耗時取決于(yu)升(sheng)(sheng)級軟(ruan)件(jian)包(bao)過(guo)程(cheng)中其他(ta)節點(dian)Leader副(fu)本(ben)的生產數(shu)據量,數(shu)據量越大,所需時間越久。升(sheng)(sheng)級總耗時=每(mei)個節點(dian)升(sheng)(sheng)級軟(ruan)件(jian)包(bao)耗時+數(shu)據同(tong)步耗時。
升(sheng)級過(guo)程(cheng)中會逐個節點(dian)重啟監(jian)控進程(cheng),導致監(jian)控數據斷點(dian),重啟成功后,監(jian)控數據恢復。
升級(ji)過程中節(jie)點(dian)滾(gun)動重(zhong)啟造(zao)成(cheng)分區Leader切換,會發生秒級(ji)連(lian)接閃斷,在用戶網絡環境(jing)穩定的前提下,Leader切換時長(chang)一般為1分鐘以內。多副本的Topic需要在生產客(ke)戶端配置重(zhong)試機制,方法如下:
生(sheng)產客(ke)戶端(duan)為(wei)(wei)Kafka開源客(ke)戶端(duan)時,檢查(cha)是否配置(zhi)retries和retry.backoff.ms參(can)數。建議參(can)數值分(fen)別配置(zhi)為(wei)(wei):retries=10,retry.backoff.ms=1000。
生產客戶端(duan)為Flink客戶端(duan)時(shi),檢查是否(fou)配置重(zhong)啟策略(lve),配置重(zhong)啟策略(lve)可以參考如下代碼。
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();env.setRestartStrategy(RestartStrategies.fixedDelayRestart(10, Time.seconds(20)));
前提條件
Kafka實例的狀態為“運行中”時,才能升級Kafka實例內核版本。
升級Kafka實例內核版本
登錄管理控制臺。
在管理控制臺左上角單擊
,選擇(ze)Kafka實例(li)所在的區域。
在管理控制臺左上角單擊
,選擇“應用服(fu)務 > 分布式消(xiao)息服(fu)務 Kafka”,進入Kafka實例列表頁面。
通過以下任意一種方法,升級Kafka實例。
在待升級內核版本的Kafka實例所在行,單擊“更多 > 升級”,彈出“版本升級”對話框。
單擊待升級內核版本的Kafka實例名稱,進入實例詳情頁面。單擊右上角的“> 升(sheng)級(ji)”,彈出“版(ban)本(ben)升(sheng)級(ji)”對(dui)話框。
選擇執行時間,支持“立即執行”和“定時執行”。
如果選擇“定時執行”,還需要(yao)指定執行時間。在“風險檢查”區域,查看升級前的檢查項是否正常。
如(ru)果檢查(cha)項有異常,請先(xian)根據提示信(xin)息修(xiu)改,然后單(dan)擊“重新檢查(cha)”。如(ru)果確(que)認異常的檢查(cha)項無需修(xiu)改,請勾選“我已(yi)知曉風險。”。單擊“確定”。
立即(ji)執行和(he)定(ding)時執行查看升級是否完成的方法(fa)不同(tong),具(ju)體如下:
表11-10查看升級結果
| 執行方式 | 升級結果 |
|---|---|
| 立即執行 |
|
| 定時執行 |
|
修改定時升級任務
在(zai)“后臺任務管理(li)”頁面的(de)“定時任務”頁簽中,單擊頁面左上角下拉框,選擇時間段(duan),在(zai)搜索對話框中輸入(ru)“版本(ben)升級”,按“Enter”,快速查找定時升級任務。
在待(dai)修改的定時(shi)升級任務后,單(dan)擊“修改”。
在彈出的“修改定時(shi)任務”對話框中,您可(ke)以(yi)修改定時(shi)升級(ji)任務的時(shi)間(jian),還可(ke)以(yi)取消(xiao)定時(shi)升級(ji)任務,具體(ti)操作(zuo)如下(xia)。
改定時(shi)升級任務的時(shi)間:修改時(shi)間,單擊“確(que)定”。
取(qu)消(xiao)定時升級任務:選擇“取(qu)消(xiao)”,單擊“確定”。