日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

读懂这篇文章,你的阿里技术面就可以过关了 | Apache RocketMQ 101

發布時間:2024/8/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读懂这篇文章,你的阿里技术面就可以过关了 | Apache RocketMQ 101 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在美國的大學課程中,101是所有課程中的第一門,是新生入學后的必修課程。阿里巴巴中間件技術專家劉振東在上周的Apache RocketMQ開發者沙龍北京站的活動上,進行了主題為《ApacheRocketMQ 101》的分享,幫助開發者從0開始學習 Apache RocketMQ,除了一些基礎的入門內容外,還有很多是在社區未發表過的個人所感所悟,首次對外分享。分享內容包括RocketMQ的起源、RocketMQ概念模型、存儲模型、部署模型和最佳實踐總結,其中最佳實踐的內容是阿里中間件技術類崗位的必考面試題。

嘉賓介紹:劉振東,阿里巴巴中間件技術專家,Apache?RocketMQ? PMC/Committer,2016年中間件性能挑戰賽亞軍,具有豐富的分布式系統設計和優化經驗,目前負責Apache?RocketMQ新航道探索和創新。

?

一、RocketMQ的起源?

通常,每個產品的誕生都源于一個具體的需求或問題,RocketMQ也不例外。起初,產品的原型像一個巨石,把所有需要實現的程序和接口都羅列到一起。但隨著公司業務的發展,所有的系統和功能都在這個巨石上開發,當覆蓋幾百上千名開發人員的時候,瓶頸就出來了。這時候,就需要我們把系統進行分解。

圖釋:巨石 -> 分布式

分解后,就出現了上圖中的分布式架構,這類架構最大的特點就是解耦,而RocketMQ的異步解耦意味著底層的重構不會影響到上層應用的功能。RocketMQ另一個優勢是削峰填谷,在面臨流量的不確定性時,實現對流量的緩沖處理。此外,RocketMQ的順序設計特性使得RocketMQ成為一個天然的排隊引擎,例如,三個應用同時對一個后臺引擎發起請求,排隊引擎的特性可以確保不會引起“撞車”事故。

?

二、RocketMQ的概念模型?

對于任何一款中間件產品而言,清晰的概念模型是幫助開發者正確理解使用它的關鍵。從RocketMQ的概念模型來看:Topic是用于存儲邏輯的地址的,Producer是信息的發送,Consumer是信息的接收者。

圖釋:最基本的概念模型

這只是一個基礎的概念模型,在實際的生產中,結構會更復雜,例如我們需要對中間的Topic進行分區,出現多個有關聯的Topic,再如同一個信息的發送方會有多個訂閱者,同一個需求方會有多個發送方,出現一對多、多對一的情況。

圖釋:擴展后的概念模型

上圖就是對Topic、Producer、Consumer擴展后的概念模型。RocketMQ中可以接觸到的所有概念都可以在這個概念模型圖中找到。左邊有兩個Producer,中間就是兩個分布式的Topic,用于存儲邏輯地址的兩個Topic中分別有兩個用于存儲物理存儲地址的Message Queue,Broker是實際部署過程的對應的一臺設備,右邊則是兩個Consumer,Consumer Group是代表兩個Consumer可共享相互之間的訂閱。不同的Consumer Group相互獨立。一句話總結就是不同的Group是廣播訂閱的,同一個Group則是負載訂閱的。圖中的連線表示各模塊之間的關系,例如Consumer Group A中的Consumer1對應著Message Queue0和Message Queue1的兩個隊列,分布在BrokerA這一臺設備上。

?

三、RocketMQ的存儲模型?

RocketMQ的消息的存儲是由ConsumeQueue和CommitLog 配合來完成的,ConsumeQueue中只存儲很少的數據,消息主體都是通過CommitLog來進行讀寫。

圖釋:存儲模型

CommitLog:是消息主體以及元數據的存儲主體,對CommitLog建立一個ConsumeQueue,每個ConsumeQueue對應一個(概念模型中的)MessageQueue,所以只要有Commit Log在,Consume Queue即使數據丟失,仍然可以恢復出來。

Consume Queue:是一個消息的邏輯隊列,存儲了這個Queue在CommitLog中的起始offset,log大小和MessageTag的hashCode。每個Topic下的每個Queue都有一個對應的ConsumerQueue文件,例如Topic中有三個隊列,每個隊列中的消息索引都會有一個編號,編號從0開始,往上遞增。并由此一個位點offset的概念,有了這個概念,就可以對Consumer端的消費情況進行隊列定義。

?

四、RocketMQ的部署模型?

在實際的部署過程中,Broker是實際存儲消息的數據節點,Nameserver則是服務發現節點,Producer發送消息到某一個Topic,并給到某個Consumer用于消費的過程中,需要先請求Nameserver拿到這個Topic的路由信息,即Topic在哪些Broker上有,每個Broker上有哪些隊列,拿到這些請求后再把消息發送到Broker中;相對的,Consumer在消費的時候,也會經歷這個流程。

圖釋:部署模型

?

五、RocketMQ最佳實踐總結?

這是我們在實踐過程的總結,同時我們也把其中一些普適性的總結作為阿里中間件技術崗的面試題,目的是幫助大家更深刻的理解我們在設計分布式消息系統的一些思考和探索。

Q1:分布式消息系統中,如何避免消息重復?

造成消息重復的根本原因是:網絡不可靠。只要通過網絡交換數據,就無法避免這個問題。所以解決這個問題的辦法就是繞過這個問題。那么問題就變成了:如果消費端收到兩條一樣的消息,應該怎樣處理?

a. 消費端處理消息的業務邏輯保持冪等性;

b. 保證每條消息都有唯一編號且保證消息處理成功與去重表的日志同時出現。

通過冪等性,不管來多少條重復消息,可以實現處理的結果都一樣。再利用一張日志表來記錄已經處理成功的消息的ID,如果新到的消息ID已經在日志表中,那么就可以不再處理這條消息,避免消息的重復處理。

Q2:順序消息擴容的過程中,如何在不停寫的情況下保證消息順序?

1. 成倍擴容,實現擴容前后,同樣的key,hash到原隊列,或者hash到新擴容的隊列;

2. 擴容前,記錄舊隊列中的最大位點;

3. 對于每個Consumer Group,保證舊隊列中的數據消費完,再消費新隊列,也即:先對新隊列進行禁讀即可;

Q3:分布式消息系統中,如何對消息進行重放?

消費位點就是一個數字,把Consumer Offset改一下就可以達到重放的目的了。

Apache RocketMQ部分開發者合影


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的读懂这篇文章,你的阿里技术面就可以过关了 | Apache RocketMQ 101的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品资源网站 | 欧美乱视频 | 亚洲另类网站 | 久久蜜桃av一区二区天堂 | 久久频| 亚洲精品97| 奇米久久 | 日本久久一级片 | 亚洲精品一区三区三区在线观看 | 欧美va亚洲va | 久久网伊人 | 欧美福利电影 | 亚洲专区欧美专区 | 在线观看欧美一区二区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | www激情com| 婷婷久久丁香 | 国产日产亚洲系列最新 | 成人无码av片在线观看 | 人妻精油按摩bd高清中文字幕 | 色播在线观看 | 日本黄xxxxxxxxx100 | 欧美日韩高清一区二区三区 | 风流少妇按摩来高潮 | 精品一卡二卡三卡 | 中文在线8资源库 | 狠狠干老司机 | 日日狠狠久久偷偷四色综合免费 | 国精品人妻无码一区二区三区喝尿 | 亚洲成人午夜影院 | 国产另类av | 小香蕉av| 亚洲男女| 逼特逼视频在线观看 | 亚洲国产精品激情在线观看 | 大胸美女网站 | 狠狠干天天操 | 天堂аⅴ在线最新版在线 | 97在线观看免费视频 | 亚洲免费三区 | 日本免费三区 | 久久成人精品一区二区 | 草逼视频网站 | 在线国产视频 | 伊人99 | 欧洲一区二区在线观看 | 丰满少妇一区二区 | 色六月婷婷 | 亚洲激情图 | www.日韩在线观看 | 精品欧美一区二区在线观看 | 精品视频在线一区 | 999热| 国产精品一区二区无线 | 一级真人毛片 | 人妻丰满熟妇av无码区免 | 午夜在线一区二区三区 | 免费成年人视频在线观看 | 亚洲欧美乱综合图片区小说区 | 免费在线观看你懂的 | 亚洲精品第五页 | 久久视频免费观看 | 在线观看免费日韩av | 国产精品熟女视频 | 1000部多毛熟女毛茸茸 | 亚洲一区二区精品在线观看 | 福利在线免费观看 | 中文字幕在线导航 | 久久短视频 | 国产亚洲精品久久久久丝瓜 | 成年人视屏 | 天天色天天干天天 | 国产 欧美 日韩 一区 | 激情四射综合网 | 亚洲区中文字幕 | 超碰97人人爱 | 91极品美女 | 色人阁婷婷 | 成人免费视频国产免费麻豆 | 黄色网页观看 | 日本系列第一页 | 免费日本黄色网址 | 日韩精品无码一区二区 | 免费看黄色漫画 | 成人123| 天堂成人国产精品一区 | 免费日本黄色片 | 国产乡下妇女三片 | 国模二区 | 欧美大胆视频 | 影音先锋亚洲成aⅴ人在 | 激情小说亚洲图片 | 大肉大捧一进一出视频 | 色图一区 | 亚洲国产欧美在线观看 | 在线v| 欧美第二区| 老师用丝袜脚帮我脚交 | 久久久久久久色 |