1. 程式人生 > >kafka動態修改__consumer_offsets的副本數量(無需重啟服務)

kafka動態修改__consumer_offsets的副本數量(無需重啟服務)

        在新版本Kafka中,__consumer_offsets這個topic是存放消費者偏移量的,但是該主題預設配置副本數量只有1,容易造成單點故障,我們可以動態修改(無需重啟服務)副本因子,提高kafka的可靠性

修改流程

---------------------------------------------------------------------------------------------------------------------------

1、編寫執行計劃的json檔案

1.1 動態地增加相關主題的副本數非常的簡單,同樣是使用kafka-reassign-partitions.sh

工具來執行,所以我們在操作之前得準備一個Json檔案,裡面詳細地記錄著每個分割槽的副本所在機器等資訊,具體如下:
 

{
    "version": 1, 
    "partitions": [
        {
            "topic": "__consumer_offsets", 
            "partition": 0, 
            "replicas": [
                1, 
                6, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 1, 
            "replicas": [
                2, 
                7, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 2, 
            "replicas": [
                0, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 3, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 4, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 5, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 6, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 7, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 8, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 9, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 10, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 11, 
            "replicas": [
                0, 
                7, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 12, 
            "replicas": [
                1, 
                6, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 13, 
            "replicas": [
                2, 
                7, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 14, 
            "replicas": [
                0, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 15, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 16, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 17, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 18, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 19, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 20, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 21, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 22, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 23, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 24, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 25, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 26, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 27, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 28, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 29, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 30, 
            "replicas": [
                1, 
                2, 
                7
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 31, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 32, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 33, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 34, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 35, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 36, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 37, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 38, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 39, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 40, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 41, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 42, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 43, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 44, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 45, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 46, 
            "replicas": [
                2, 
                6, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 47, 
            "replicas": [
                0, 
                4, 
                5
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 48, 
            "replicas": [
                1, 
                7, 
                4
            ]
        },
        {
            "topic": "__consumer_offsets", 
            "partition": 49, 
            "replicas": [
                2, 
                6, 
                5
            ]
        }
    ]
}

1.2 將json檔案儲存至linux中,並取名為replication.json(任意名稱)

  vim replication.json

1.3  執行Json檔案


[[email protected]_65_10_centos bin]# ./kafka-reassign-partitions.sh --zookeeper 10.69.65.2:2181 --reassignment-json-file ../explain/replcas.json --execute

1.4 驗證執行計劃結果

[[email protected]_65_10_centos bin]# ./kafka-reassign-partitions.sh --zookeeper 10.69.65.2:2181 --reassignment-json-file ../explain/replcas.json --verify

1.5 檢視新的副本數量

[[email protected]_65_10_centos bin]# ./kafka-topics.sh --zookeeper 10.69.65.2:2181 --topic __consumer_offsets --describe

相關推薦

kafka動態修改__consumer_offsets副本數量無需服務

        在新版本Kafka中,__consumer_offsets這個topic是存放消費者偏移量的,但是該主題預設配置副本數量只有1,容易造成單點故障,我們可以動態修改(無需重啟服務)副本因子,提高kafka的可靠性 修改流程 ---------------

PHP study2014 配置多個站點主要是修改 vhosts.conf檔案,然後

主要是修改 vhosts.conf檔案和httpd.conf檔案,然後重啟。 httpd.conf檔案:【注意補充埠】 #Listen 12.34.56.78:80 Listen 8089 Listen 9001 Listen 9002 Listen 9003 Liste

redhat定時執行任務自動Tomcat

期望目標:定時器一分鐘執行一次,進行tomcat程序的檢測,如果檢測到tomcat關閉,則自動重啟tomcat 步驟一:編寫shell指令碼 #!/bin/sh # 獲取tomcat程序ID /usr/local/tomcat_ds_api TomcatID=$(ps

Kafka動態調整topic副本因子replication-factor

實際專案中我們可能在建立topic時沒有設定好正確的replication-factor,導致kafka叢集雖然是高可用的,但是該topic在有broker宕機時,可能發生無法使用的情況。topic一旦使用又不能輕易刪除重建,因此動態增加副本因子就成為最終的選擇。 原因分析: 假

Windows下快速安裝Xgboost無需Git或者VS

nor port 最終 比賽 http 無需 windows git 到你 xgboost的全稱是eXtreme Gradient Boosting,現在已經風靡Kaggle、天池、DataCastle、Kesci等國內外數據競賽平臺,是比賽奪冠的必備大殺器!如果

控制程序的啟動數量限制遊戲多開

strong err mod ucc pan 會有 sys ready 命令行 引言: 在PC端使用軟件的過程中。有時開發人員會有類似限制程序啟動數量的需求,如限制某程序在單一PC端的啟動數量。或是為了統計PC端啟動的程序數量等,顯然須要一種“計數器

表的重新再同步無需時間窗口

gate 腳本 啟動 並且 文件 cti 初始 back 通過 表的重新再同步(無需時間窗口) 如果是某些表由於各種原因造成兩邊數據不一致,需要重新進行同步,但實際業務始終24小時可用,不能提供時間窗口, 則可以參照以下步驟。(因較為復雜,使用需謹慎!) 1)確認e

Jetty插件實現熱部署開發時修改文件自動Jetty

max www. nbsp 很遺憾 pom als ati mave 重啟 在pom.xml文件中配置Jetty插件的參數:scanIntervalSeconds <plugin> <grou

mongodb count 導致不正確的數量mongodb count 一個坑

ride getc 官網 foreach arrays 圖片 client tab tor https://www.cnblogs.com/Kellana/p/5844919.html 在mongodb 集群中,if 存在orphaned documents

[Python] 動態函數調用通過函數名

context compile function icm 字符串函數 real state for 輸出結果 2018-04-09 update 利用python中的內置函數 eval() ,函數說明: def eval(*args, **kwargs): # re

spring boot在Eclipse中,修改代碼後無需就生效的配置

maven java eclipse <build> <finalName>my-spring-boot</finalName> <!-- 指定package生成的文件名為my-spring-boot.jar --> <

一對一、模擬本地的數據庫動態綁定數據微信小程序

教材 script 本地 highlight 數據 lis 模擬 post UNC 核心:使用wx:for="{{posts_key}}",用數組的形式來綁定多個的內容,利用for循環來反復調用後臺數據,如果沒用用posts_key了,那麽對應的item_這種命名就是不可以

【原始碼追蹤】SparkStreaming 中用 Direct 方式每次從 Kafka 拉取多少條資料offset取值範圍

我們知道 SparkStreaming 用 Direct 的方式拉取 Kafka 資料時,是根據 kafka 中的 fromOffsets 和 untilOffsets 來進行獲取資料的,而 fromOffsets 一般都是需要我們自己管理的,而每批次的 untilOffsets 是由

LaTex中文編譯無需特殊編輯器

LaTex中文編譯(無需特殊編輯器) 本文記錄了用Latex編寫中文文件的方法,非常簡單。更新於2018.10.18。 \documentclass[UTF8]{article} \usepackage{CTEX} \begin{document} ... \end{docume

C#實現.Net對郵件進行DKIM簽名和驗證,支援附件,傳送郵件簽名後直接投遞到對方伺服器無需己方郵件伺服器

專案地址 github.com/xiangyuecn/… 主要支援 對郵件進行DKIM簽名,支援帶附件 對整個郵件內容(.eml檔案)的DKIM簽名進行驗證 對MailMessage、SmtpClient進行了一次封裝,傳送郵件簡單易用,進行DKIM簽名後直接投遞到對方伺服器(無需己方郵件

【springboot】spring boot修改程式碼後無需設定,在開發時實現熱部署

熱部署是什麼 大家都知道在專案開發過程中,常常會改動頁面資料或者修改資料結構,為了顯示改動效果,往往需要重啟應用檢視改變效果,其實就是重新編譯生成了新的Class檔案,這個檔案裡記錄著和程式碼等對應的各種資訊,然後Class檔案將被虛擬機器的ClassLoader載入。 而熱部署正是利用了這

eclipse mavenWeb專案真正實現熱部署修改java程式碼和頁面檔案不用tomcat

        1.前言   先說熱部署的含義:   熱部署原來被定義為:tomcat啟動後,如果你往webapps目錄下,新增新的專案,tomcat會實現自動將其釋出的功能,這時,就叫做熱部署。   網上所實現的熱部署

如何利用github搭建個人網站無需購買雲伺服器

1.建立GithubPage 這裡的作用就是說在github上建立一個倉庫,並且將它設定成github的網頁模式,其實我們後面的域名只是跳轉到這個倉庫的頁面 首先新建一個倉庫 然後注意設定倉庫名字時要和你的githubID一模一樣,即xxx.github.io 然後建

IDEA springboot專案修改檔案後無需(熱部署)

想在除錯springboot專案時,修改靜態資原始檔後不重啟可以通過下面兩步來達到目的 1、在pom中直接引入依賴 <dependency>     <groupId>org.springframework</groupId> &nbs

Ubuntu 18.04 軟體源修改成國內源檔案或介面形式

輸入命令修改sources.list檔案: sudo gedit /etc/apt/sources.list 在檔案最前面新增以下條目(操作前請做好相應備份): #清華 deb https://mirrors.tuna.tsinghua.edu.cn/