最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

K8S環(huán)境下如何驗(yàn)證RocketMQ擴(kuò)縮容

 更新時(shí)間:2025年01月02日 09:05:50   作者:萊特昂  
文章主要內(nèi)容驗(yàn)證了K8S環(huán)境下RocketMQ的擴(kuò)縮容特性,包括序號(hào)變化、命名規(guī)則以及節(jié)點(diǎn)重建后序號(hào)保持不變,StatefulSet確保Pod序號(hào)在重建后保持穩(wěn)定,而Deployment創(chuàng)建的Pod名稱是隨機(jī)的

背景

想驗(yàn)證一些K8S環(huán)境下RocketMQ擴(kuò)縮容時(shí)的表現(xiàn)和特性,比如序號(hào)是否改變?命名規(guī)則是怎樣的?刪除和新增節(jié)點(diǎn)后序號(hào)怎么變化?

Broker

修改yaml中replicas擴(kuò)容

delete刪除節(jié)點(diǎn),觀察能否縮容,以及序號(hào)的變化

其中,節(jié)點(diǎn)被重建,且序號(hào)保持原序號(hào)。

kubectl scale指令擴(kuò)縮容

kubectl scale 命令,它是 kubectl set 命令的一個(gè)特例,專門用于修改資源的副本數(shù)量。

kubectl scale statefulsets rocketmq-broker-master --replicas=1 -n rocketmq
  • 從2個(gè)master節(jié)點(diǎn)縮容為1個(gè):

  • 從2個(gè)master節(jié)點(diǎn)擴(kuò)容為5個(gè):

其中,可以看到擴(kuò)容的過程是依次擴(kuò)容,而非同時(shí)擴(kuò)。

運(yùn)行delete yaml指令后,所有broker節(jié)點(diǎn)均被刪除

POD name序號(hào)變化和重啟保持不變的原理

StatefulSet控制器創(chuàng)建的Pod副本會(huì)自動(dòng)加上序號(hào)后綴。Pod的序號(hào)是按照它們被創(chuàng)建的順序分配的,從0開始遞增。StatefulSet特性摘抄:

  • 順序性:Pod的序號(hào)是按照它們被創(chuàng)建的順序分配的,從0開始遞增。 唯一性:每個(gè)Pod的名稱在其整個(gè)生命周期中都是唯一的。
  • 穩(wěn)定性:StatefulSet確保Pod的序號(hào)在Pod重新調(diào)度或重建后保持不變,這是通過StatefulSet的Pod管理策略(OrderedReady或Parallel)來實(shí)現(xiàn)的。

一旦apply StatefulSet.yaml后,手動(dòng)delete掉POD,POD會(huì)被重建。想徹底刪除節(jié)點(diǎn)只能通過delete yaml的方式。

brokerName通過configmap從POD name中取序號(hào)后拼接broker-g。

configmap中這部分代碼:

  broker_name_seq=${HOSTNAME##*-}
  if [ -n "$MY_POD_NAME" ]; then
    broker_name_seq=${MY_POD_NAME##*-}
  fi
  update_broker_conf "brokerName" "broker-g${broker_name_seq}"

其中,取POD的-尾部序號(hào)作為broker_name_seq,與broker-g拼接作為brokerName。

(去除了yaml中共享存儲(chǔ)的pvc掛載,由于測試需要手動(dòng)構(gòu)造本地相同目錄的PVC,無法使用SC動(dòng)態(tài)創(chuàng)建,會(huì)影響自動(dòng)擴(kuò)縮容。)

Proxy

proxy節(jié)點(diǎn)從2到4擴(kuò)容

proxy由Deployment控制器創(chuàng)建,是無狀態(tài)的。其創(chuàng)建的pod名稱是沒有序號(hào)連續(xù)的。

通過delete刪除后也會(huì)重建新的pod name

proxy節(jié)點(diǎn)縮容,從4到2,發(fā)現(xiàn)雖然POD名稱是隨機(jī)的,但縮容也會(huì)按照新創(chuàng)建先縮容:

Deployment Pod name命名規(guī)則原理:

  • 隨機(jī)名稱:每個(gè)Pod的名稱是由Kubernetes隨機(jī)生成的,通常是一個(gè)五字符的隨機(jī)字符串,這些字符可能是字母和數(shù)字的組合。
  • 名稱唯一性:盡管名稱是隨機(jī)生成的,但Kubernetes確保在同一個(gè)命名空間內(nèi)每個(gè)Pod的名稱是唯一的。
  • 標(biāo)簽一致性:盡管Pod名稱是隨機(jī)的,但Pod的標(biāo)簽(labels)是一致的,并且與Deployment的標(biāo)簽選擇器(selector)相匹配。這意味著你可以通過Deployment的標(biāo)簽選擇器來管理和引用相關(guān)的Pod。
  • 重啟和重建:如果Pod由于任何原因(例如,縮放、更新、節(jié)點(diǎn)故障等)被重啟或重建,新創(chuàng)建的Pod將獲得一個(gè)新的隨機(jī)名稱。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 緩存優(yōu)化Redis 實(shí)戰(zhàn)指南

    Spring Boot 緩存優(yōu)化Redis 實(shí)戰(zhàn)指南

    本文介紹了如何在SpringBoot項(xiàng)目中集成Redis緩存,以優(yōu)化性能并提高用戶體驗(yàn),通過實(shí)戰(zhàn),讀者可以快速掌握Redis緩存的集成方法,并在實(shí)際項(xiàng)目中應(yīng)用,解決數(shù)據(jù)量大的性能瓶頸,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • java String、StringBuilder和StringBuffer的區(qū)別詳解

    java String、StringBuilder和StringBuffer的區(qū)別詳解

    這篇文章主要介紹了java String、StringBuilder和StringBuffer的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 基于FileNotFoundException問題的解決

    基于FileNotFoundException問題的解決

    這篇文章主要介紹了基于FileNotFoundException問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java實(shí)戰(zhàn)之課程信息管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之課程信息管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)課程信息管理系統(tǒng),文中采用到的技術(shù)有:Springboot、SpringMVC、MyBatis、FreeMarker等,感興趣的可以了解一下
    2022-04-04
  • Java 注解@AliasFor使用方式及實(shí)際案例

    Java 注解@AliasFor使用方式及實(shí)際案例

    本文將全面介紹@AliasFor注解的使用方式、應(yīng)用場景、源碼解析以及實(shí)際案例,幫助你徹底掌握這個(gè)高級(jí)注解,感興趣的朋友一起看看吧
    2025-08-08
  • Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼

    Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)反轉(zhuǎn)義的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Spring常用注解匯總

    Spring常用注解匯總

    這篇文章主要介紹了Spring常用注解匯總,需要的朋友可以參考下
    2014-08-08
  • Spring定時(shí)任務(wù)中數(shù)據(jù)未持久化的深度排查和解決指南

    Spring定時(shí)任務(wù)中數(shù)據(jù)未持久化的深度排查和解決指南

    在Spring Boot應(yīng)用中,開發(fā)人員常通過@Scheduled定時(shí)任務(wù)實(shí)現(xiàn)日志緩存批量寫入數(shù)據(jù)庫的功能,然而,即使代碼執(zhí)行無報(bào)錯(cuò)、事務(wù)已提交,數(shù)據(jù)庫表卻始終未保存任何數(shù)據(jù),所以本文給大家介紹了Spring定時(shí)任務(wù)中數(shù)據(jù)未持久化的深度排查指南,需要的朋友可以參考下
    2025-10-10
  • Java利用Map實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù)

    Java利用Map實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù)

    這篇文章主要為大家詳細(xì)介紹了Java如何利用Map集合實(shí)現(xiàn)計(jì)算文本中字符個(gè)數(shù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • Spark?Streaming?內(nèi)部運(yùn)行機(jī)制示例詳解

    Spark?Streaming?內(nèi)部運(yùn)行機(jī)制示例詳解

    這篇文章主要介紹了Spark?Streaming?內(nèi)部運(yùn)行機(jī)制示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-05-05

最新評(píng)論

阳东县| 安平县| 灵台县| 乌鲁木齐市| 固原市| 新源县| 任丘市| 上林县| 常宁市| 巴里| 金华市| 浦北县| 重庆市| 金寨县| 大新县| 济源市| 隆尧县| 灵武市| 塔河县| 鹿泉市| 巫山县| 分宜县| 阿城市| 麟游县| 天津市| 扶沟县| 鄂托克前旗| 保定市| 阿坝| 东兰县| 施秉县| 德格县| 舞阳县| 那坡县| 通城县| 明溪县| 阳泉市| 上林县| 井冈山市| 东宁县| 孝义市|