黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

第一部分 Java基礎(chǔ)
第二部分 Java進(jìn)階

Java ActiveMQ面試題

1、如何使用ActiveMQ解決分布式事務(wù)?

在互聯(lián)網(wǎng)應(yīng)用中,基本都會(huì)有用戶注冊(cè)的功能。在注冊(cè)的同時(shí),我們會(huì)做出如下操作:

● 收集用戶錄入信息,保存到數(shù)據(jù)庫

● 向用戶的手機(jī)或郵箱發(fā)送驗(yàn)證碼

如果是傳統(tǒng)的集中式架構(gòu),實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)單:開啟一個(gè)本地事務(wù),往本地?cái)?shù)據(jù)庫中插入一條用戶數(shù)據(jù),發(fā)送驗(yàn)證碼,提交事物。但是在分布式架構(gòu)中,用戶和發(fā)送驗(yàn)證碼是兩個(gè)獨(dú)立的服務(wù),它們都有各自的數(shù)據(jù)庫,那么就不能通過本地事物保證操作的原子性。這時(shí)我們就需要用到ActiveMQ(消息隊(duì)列)來為我們實(shí)現(xiàn)這個(gè)需求。在用戶進(jìn)行注冊(cè)操作的時(shí)候,我們?yōu)樵摬僮鲃?chuàng)建一條消息,當(dāng)用戶信息保存成功時(shí),把這條消息發(fā)送到消息隊(duì)列。驗(yàn)證碼系統(tǒng)會(huì)監(jiān)聽消息,一旦接受到消息,就會(huì)給該用戶發(fā)送驗(yàn)證碼。

2、如何防止消息重復(fù)發(fā)送?

解決方法很簡(jiǎn)單:增加消息狀態(tài)表。通俗來說就是一個(gè)賬本,用來記錄消息的處理狀態(tài),每次處理消息之前,都去狀態(tài)表中查詢一次。如果已經(jīng)有相同的消息存在,那么不處理,可以防止重復(fù)發(fā)送。

3、了解哪些消息隊(duì)列?

ActiveMQ、RabbitMQ、kafka。

RabbitMQ是使用Erlang編寫的一個(gè)開源的消息隊(duì)列,本身支持很多的協(xié)議:AMQP,XMPP,SMTP,STOMP,也正因如此,它非常重量級(jí),更適合于企業(yè)級(jí)的開發(fā)。同時(shí)實(shí)現(xiàn)了Broker構(gòu)架,這意味著消息在發(fā)送給客戶端時(shí)先在中心隊(duì)列排隊(duì)。對(duì)路由,負(fù)載均衡或者數(shù)據(jù)持久化都有很好的支持。

ActiveMQ是Apache下的一個(gè)子項(xiàng)目。類似于ZeroMQ,它能夠以代理人和點(diǎn)對(duì)點(diǎn)的技術(shù)實(shí)現(xiàn)隊(duì)列。同時(shí)類似于RabbitMQ,它少量代碼就可以高效地實(shí)現(xiàn)高級(jí)應(yīng)用場(chǎng)景。

Kafka是Apache下的一個(gè)子項(xiàng)目,是一個(gè)高性能跨語言分布式發(fā)布/訂閱消息隊(duì)列系統(tǒng),而Jafka是在Kafka之上孵化而來的,即Kafka的一個(gè)升級(jí)版。具有以下特性:快速持久化,可以在O(1)的系統(tǒng)開銷下進(jìn)行消息持久化;高吞吐,在一臺(tái)普通的服務(wù)器上既可以達(dá)到10W/s的吞吐速率;完全的分布式系統(tǒng),Broker、Producer、Consumer都原生自動(dòng)支持分布式,自動(dòng)實(shí)現(xiàn)負(fù)載均衡;支持Hadoop數(shù)據(jù)并行加載,對(duì)于像Hadoop的一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實(shí)時(shí)處理的限制,這是一個(gè)可行的解決方案。Kafka通過Hadoop的并行加載機(jī)制統(tǒng)一了在線和離線的消息處理。Apache Kafka相對(duì)于ActiveMQ是一個(gè)非常輕量級(jí)的消息系統(tǒng),除了性能非常好之外,還是一個(gè)工作良好的分布式系統(tǒng)。

● MQ選型對(duì)比圖

4、ActiveMQ如果消息發(fā)送失敗怎么辦?

Activemq有兩種通信方式,點(diǎn)到點(diǎn)形式和發(fā)布訂閱模式。

如果是點(diǎn)到點(diǎn)模式的話,如果消息發(fā)送不成功,此消息默認(rèn)會(huì)保存到activemq服務(wù)端知道有消費(fèi)者將其消費(fèi),所以此時(shí)消息是不會(huì)丟失的。

如果是發(fā)布訂閱模式的通信方式,默認(rèn)情況下只通知一次,如果接收不到此消息就沒有了。這種場(chǎng)景只適用于對(duì)消息送達(dá)率要求不高的情況。如果要求消息必須送達(dá)不可以丟失的話,需要配置持久訂閱。每個(gè)訂閱端定義一個(gè)id,在訂閱是向activemq注冊(cè)。發(fā)布消息和接收消息時(shí)需要配置發(fā)送模式為持久化。此時(shí)如果客戶端接收不到消息,消息會(huì)持久化到服務(wù)端,直到客戶端正常接收后為止。

全部教程
主站蜘蛛池模板: 国产第一福利 | 欧美大交乱xxxxxbbb | 色猫成人网 | 日韩一级黄色 | 国产精品麻豆a啊在线观看 国产精品麻豆高清在线观看 | 免费的黄色小视频 | 在线国产播放 | 最近的2019中文字幕4 | 日韩免费视频网站 | 黄色在线观看视频网站 | 亚洲国产精品二区久久 | 动漫美女羞羞网站 | 九九热线有精品视频99 | 午夜啪啪剧院 | 天天爽天天摸 | 男女网站在线观看 | 99视频精品全国在线观看 | 网站在线观看你懂的 | 911国内自产亚洲第一 | 欧美精品日韩一区二区三区 | 怡红院成人影院 | 高清视频 一区二区三区四区 | 青青青国产依人在线视频97 | 国产成人精品亚洲77美色 | 日日摸夜夜添夜夜添破第一 | 成人免费福利片在线观看 | 一区二区三区欧美日韩 | 99视频在线精品自拍 | 亚洲国产日韩a在线亚洲 | 亚洲欧美在线观看播放 | 亚洲欧美国产精品专区久久 | 亚洲欧美日韩中文在线 | 成人国产精品视频 | 国产激情视频在线播放 | 欧美第一页草草影院 | 全黄a一级毛片 | 韩日在线 | 亚洲国产中文在线 | 狠狠色丁香久久综合五月 | 亚洲影视天堂 | 丁香激情五月 |