1. 程式人生 > >JAVA高階開發工程師面試系列——RocketMQ

JAVA高階開發工程師面試系列——RocketMQ

訊息中介軟體對比

這裡寫圖片描述

為什麼選擇RocketMQ

價效比,社群活躍度
價效比之“性”:
效能:阿里支撐,經受住淘寶,天貓雙11重重考驗;效能高;可靠性好;可用性高;易擴充套件
功能:功能完善,我們需要的功能,基本都夠滿足,如:事務訊息,訊息重試,私信佇列,定時訊息等;
易用,跨平臺:跨語言,多協議接入(支援HTTP, MQTT, TCP協議,支援Restful風格HTTP收發訊息)
價效比之“價”:
錢能解決的問題,一般都不是問題,所以免費服務不能滿足的,適當的花錢購買所需服務是值得的,早期阿里引進的IOE,那我們引進的就是RocketMQ的阿里雲和VIP服務;
當然,錢解決不了的問題,那必然是問題,IOE的高消費,不如去IOE尋找技術方面的突破,
社群活躍度:


技術突破就分能突破的和不能突破的,需要社群支援,社群不活躍,版本問題不改善,自己修復問題不僅耗時,而且未必正確能夠經受考驗

RocketMQ佇列消費謹記

一個消費者可以消費多個佇列,但一個佇列只能由一個消費者消費

RocketMQ訊息順序和重複消費問題

RocketMQ特性

順序性
訊息過濾
訊息持久化
訊息回溯
大量訊息堆積
定時訊息
訊息重試

RocketMQ廣播與叢集區別

RocketMQ高可用

RocketMQ分散式事務

RocketMQ有哪些坑

RocketMQ的namesrv全掛掉是否影響通訊

RocketMQ的生產者和傳送者Reblance

RocketMQ佇列中的訊息有序,能否保證消費者消費也有序

必須是順序消費才可以,並行消費無法做到有序。是否受網路影響,順序消費也有可能無序,待測

RocketMQ怎麼設定訊息是從Master消費還是從Slaver消費。Master和Slaver同時線上,訊息是否會從Master消費一遍,然後再從Slaver消費一遍?

RocketMQ預設埠

namesrv預設埠9876,broker預設埠10911,VIP預設埠10909,每個broker啟動後預設佔用兩個埠10911和10913或10912和10914

RocketMQ同一臺機,啟動多個生產者例項或多個消費者例項,需要設定不同的例項名稱

RocketMQ無論何種情況(傳送到單個佇列,順序消費或並行消費;或者傳送到多個佇列,順序消費或者並行消費),延時/定時訊息總是遲於非延時/非定時訊息到達broker,延時/定時訊息是在延時/定時時間過後才被投放到broker,也即延時/定時訊息不會影響非延時/非定時訊息到達broker。如果等待所有訊息全部到達broker之後,才啟動消費者,這個延時/定時是否還有意義?

RocketMQ在不考慮網路影響的情況下,只有將同一ID的訊息傳送到同一佇列上,並且消費端使用順序消費,才能保證訊息被順序消費。即生產者不使用MessageQueueSelector或者消費者不使用MessageListenerOrderly的任何一種情況出現都不能保證訊息被順序消費,考慮網路影響的情況待測。

RocketMQ消費端訊息ack是ack到本地佇列,然後由本地佇列登記後,再5秒鐘間隔上報到broker?

經測試:調大上報時間,本地ack之後(返回CONSUME_SUCCESS,且#Diff > 0),立即停掉消費端,過許久,發現仍#Diff > 0,證明消費端確實還沒有上報ack進度給broker;重啟消費端之後,因#Diff > 0,訊息又被重新消費了一次,證明之前broker確實沒收到ack,也由此可證明消費端ack是先ack到本地佇列,停掉消費端,本地佇列的所有資訊都沒有了,也就因此遲遲不會將#Diff變為0。

相關推薦

JAVA高階開發工程師面試系列——RocketMQ

訊息中介軟體對比 為什麼選擇RocketMQ 價效比,社群活躍度 價效比之“性”: 效能:阿里支撐,經受住淘寶,天貓雙11重重考驗;效能高;可靠性好;可用性高;易擴充套件 功能:功能完善,我們需要的功能,基本都夠滿足,如:事務訊息,訊息重試,私信佇

JAVA高階開發工程師面試系列——SpringCloud與Dubbo對比

架構完整度 Dubbo只是實現了服務治理,而Spring Cloud下面有17個子專案(可能還會新增)分別覆蓋了微服務架構下的方方面面,服務治理只是其中的一個方面,一定程度來說,Dubbo只是Spring Cloud Netflix中的一個子集。 Dub

面試總結-java高階開發工程師】第四波

一面: 1.事務的隔離級別 2.資料庫引擎 3.索引的使用 4.in 索引會失效嗎?不會 ,但是型別會是range型別 5.AOP 6.JVM 7.set可以存null嗎 hashmap的key和set

想要成功應聘Java高階開發工程師,8個你必須知道的面試考綱

點選上方“程式設計師大咖”,選擇“置頂公眾號”關鍵時刻,第一時間送達!市面上,有很多Java的學

Android高階開發工程師技術面試經驗總結

         筆者前段時間參加了綠廠的Android高階開發工程師技術面試,總結一下,希望對即將參加技術面試的程式設計師能有所幫助。         首先面試官問的是專案相關的問題,如專案的實現、專案中

記我的第一次Java開發工程師面試

萬事開頭難,終於開壺了,通過了一次筆試,進行了面試,第一次面試當然是被虐的不行,一下子面了三個人做了三次自我介紹,緊張不是緊張,而是害怕答錯沒有把一些問題按照自己心裡的想法說出來,之後百度查到的問題還是和自己心裡的想法是正確的,其實都是一些基礎性的問題,資料結構,多執行緒,

2017年JAVA後端web開發工程師面試各大公司比較【熱門的公司基本都有】

        從國內一線的某網際網路公司離職後,踏踏實實休息了幾個月,年後開始了找工作之旅。本著面得多選擇多的目的,也為了看看各大公司的不同情況,便開始了漫長面試之旅。下面儘量把面試過的公司情況都列出來,供年後求職的兄弟們參考,其中摻雜了不少個人的一些感受,一家之言吧。

大資料工程師開發面試系列(7)

MapReduce 1. 不指定語言,寫一個WordCount的MapReduce 我:最近剛學了scala,並且就有scala版本的WordCount,剛好學以致用了一下: 2. 上

測試開發工程師面試總結(一)——Java基礎篇

本文面向物件:測試開發工程師(服務端自動化方向)。 隨手百度一下都能找到**崗位面試總結,但是有關測開崗位的面試總結卻寥寥無幾。總體原因可能是這兩個:1 測試行業整體水平參差不齊,導致不同公司面試的問題不能抽象出來寫概覽。2 很多做測開的人可能內心對

think in java interview-高階開發人員面試寶典(六)

寫了這麼多JAVA基礎,來點SQL吧!一般面試時考SQL,主要就是考你“統計分析”這一塊,下面我們來看面試官經常採用的手段。由4張簡單的不能再簡單的表,演變出50道SQL哈哈哈哈,夠這個面試官面個15,20個人,不帶重複的了,而且每個SQL你真的不動動腦子還寫不出呢,你別不服

最新Java高級開發工程師面試考綱

ges 數據庫 初始 file 類加載器 socket通信 null ble 系統 當前,市面上有《Java XX寶典》類似的圖書,而且圖書中的內容都著重在講解Java最為基礎的部分,最嚴重的是,裏面有著大量錯誤的內容,極具誤導性。另外,網上也有各種各樣的Java面試題,很

面試Java高階開發崗位,只需準備這幾點,讓面試官心服口服!

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

新浪PHP開發工程師面試筆試題

新浪筆試面試 php面試筆試 找實習找的心累,於是在學校bbs上找了一個新浪的散招。先做了一份筆試題,題目如下。1、列舉一下你知道的Unix信號,並說明其用途2、給你一個ip地址,寫出其無符號32位的表示法3、給你一些http的東西post請求,數據,cookie,URL,寫一個http頭。4、簡述一

【2017-07-01】Linux應用開發工程師面試問題記錄之二:關於結構體的大小及內存對齊問題

偶數 而且 strong span net 但是 開發 f11 flag Tencent後臺服務器開發有一道題是計算一個結構體的sizeof的大小: struct strData { int m_Int; char m_Char; short m_Short; char

Java高級工程師面試總結

格式化 交易 結構 標準 一是 傳輸 分布式緩存 map 搜索 面試技巧1、背熟你的簡歷 原因:面試的第一個問題,一般都是讓你簡單介紹下你自己,或者介紹一下你最近的項目,而一個面試者,如果連自己的簡歷都無法熟知,對裏面提到的項目、技術都無法描述清楚的話,我想沒有哪家公司會接

珍藏版 Python 開發工程師面試試題

epc lis 你是 lin 是否 顯示 後端 tex 要求 珍藏版 Python 開發工程師面試試題 說明:不拿到幾家公司的offer,那就是卑鄙的浪費 一.Python_基礎語法 1.可變與不可變類型; 2.淺拷貝與深拷貝的實現方式、區別;deepcopy如果你來

Java高階程式設計師面試題目集

  時隔兩年,再一次的面臨離職找工作,這一次換工作有些許的不捨,也有些許的無奈。個人所在的技術團隊不錯,兩年時間成長了很多,也很不捨這個團隊。但是,由於公司的某些原因和對於自身未來發展的綜合考慮,又不得不得離去,去尋找更合適的地方成長和發展。相比於兩年前,

我是如何從通訊轉到Java軟體開發工程師的?

轉載出處    https://blog.csdn.net/eson_15/article/details/84137539 我的CSDN和公眾號的讀者裡面有絕大部分都是在校學生,有本科的,也有專科的,我在微信裡收到很多讀者的提問,大部分問題都跟如何學習程式設計有關

Java高階程式設計師面試大綱——備戰金三銀四跳槽季

跳槽時時刻刻都在發生,但是我建議大家跳槽之前,先想清楚為什麼要跳槽。切不可跟風,看到同事一個個都走了,自己也盲目的開始面試起來(期間也沒有準備充分),到底是因為技術原因(影響自己的發展,偏移自己規劃的軌跡),還是錢給少了,不受重視。 準備不充分的面試,完全是浪費時間,更是對

透露一下Java軟件工程師面試常見問題集錦之一

contain oge 移動 我們 生命周期 tor string類 行為 servlet 1、面向對象的特征有哪些方面 1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地註意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫