寫在前面 上篇文章我們介紹了新增節(jié)點(diǎn)后分區(qū)怎么重新負(fù)載,但這種情況很少發(fā)生。因?yàn)閗afka單機(jī)負(fù)載能力很是強(qiáng)悍,一般3個(gè)節(jié)點(diǎn)即可,5個(gè)節(jié)點(diǎn)的都很少見。然而很大概率出現(xiàn)的問題是...
寫在前面 假如有一天,你單位業(yè)務(wù)不斷增長(zhǎng)發(fā)財(cái)了。有天老板說我們需要增加kafka集群節(jié)點(diǎn),這是怎莫辦?那就新增加一臺(tái)機(jī)器唄!很簡(jiǎn)單我們只需要從已經(jīng)部署好的Kafka節(jié)點(diǎn)中復(fù)制...
寫在前面 上篇說到了kafka由于重復(fù)發(fā)送消息導(dǎo)致消息重復(fù)的問題。那不重發(fā)就不會(huì)重復(fù)了,的確是這樣的,但這樣也會(huì)帶來(lái)一個(gè)問題。producer只發(fā)送一次,那消息丟失了怎莫辦?...
寫在前面 我在rabbitMQ系列分別從生產(chǎn)者,隊(duì)列和消費(fèi)者三方面,討論了消息可靠性保證。而本系列要討論的kafka和rabbit系列有諸多相似之處。RabbitMQ傳送門[...
一. 前言 剛?cè)肟觠ava時(shí),Socket編程是大家都繞不過去的一個(gè)環(huán)節(jié)。先回顧下經(jīng)典socket編程,直接上代碼如下: 服務(wù)端 客戶端 BIO與NIO傳統(tǒng)socket編程中...
前言 spring cloud gateway作為一種簡(jiǎn)單有效的統(tǒng)一的API路由管理方式,為我們限流措施提供了一個(gè)有效的入口。 一. 限流算法 本文從常用的令牌桶限流算法說起...
寫在前面 以前在項(xiàng)目中遇到了解析CAD平面圖形的需求,網(wǎng)上蕩了許久沒有全面的工具類,羊手把手一步步封裝了解析cad中類型文件dxf的項(xiàng)目,并封裝成了starter,歡迎各位大...
一. 前言 前一篇中,羊介紹了spring cache的抽象。大多數(shù)的緩存,常放入專用的緩存中間件,如redis。本文就探討下結(jié)合外置redis實(shí)現(xiàn)JSR-107規(guī)范。 二....
一. JSR-107是啥 Java Specification Requests ,簡(jiǎn)稱JSR。簡(jiǎn)而言之,就是該規(guī)范告訴我們?nèi)绾卧趈ava中使用緩存。和JDBC類似,jsr-...
一. 消費(fèi)端的ACK機(jī)制 消費(fèi)端消費(fèi)消息后需要發(fā)送Ack確認(rèn)報(bào)文給Broker端,告知自己是否已消費(fèi)完成,否則可能會(huì)一直重發(fā)消息直到消息過期。1、如果消費(fèi)者收到消息后,在確認(rèn)...
前一篇文中,我們說了rabbitMQ的confirm機(jī)制和事務(wù),接下來(lái)我們討論下消息的存儲(chǔ)。 一. 消息持久化 消息寫入磁盤是rabbitMQ保證可用性的基礎(chǔ)。1.1 Exc...
一. 前言 消息隊(duì)列一般有三部分:生產(chǎn)者,隊(duì)列本身和消費(fèi)者。消息出現(xiàn)問題,一般也就圍繞這三部分。 二. 消息丟失處理 2.1 發(fā)送端確認(rèn)機(jī)制發(fā)送端確認(rèn)(publisher c...
一.為啥要持久化 大家都知道Redis是內(nèi)存數(shù)據(jù)庫(kù),宕機(jī)后數(shù)據(jù)會(huì)消失。為了Redis重啟后快速恢復(fù)數(shù)據(jù),所以需要持久化機(jī)制??偠灾?,Redis持久化是為了快速的恢復(fù)數(shù)據(jù)而不...
Zookeeper 允許客戶端向服務(wù)端的某個(gè) Znode 注冊(cè)一個(gè) Watcher 監(jiān)聽,當(dāng)服務(wù)端的一些指定事件觸發(fā)了這個(gè) Watcher,服務(wù)端會(huì)向指定客戶端發(fā)送一個(gè)事件通...