大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

第一部分 Java基礎
第二部分 Java進階

Java ActiveMQ面試題

1、如何使用ActiveMQ解決分布式事務?

在互聯網應用中,基本都會有用戶注冊的功能。在注冊的同時,我們會做出如下操作:

● 收集用戶錄入信息,保存到數據庫

● 向用戶的手機或郵箱發送驗證碼

如果是傳統的集中式架構,實現這個功能非常簡單:開啟一個本地事務,往本地數據庫中插入一條用戶數據,發送驗證碼,提交事物。但是在分布式架構中,用戶和發送驗證碼是兩個獨立的服務,它們都有各自的數據庫,那么就不能通過本地事物保證操作的原子性。這時我們就需要用到ActiveMQ(消息隊列)來為我們實現這個需求。在用戶進行注冊操作的時候,我們為該操作創建一條消息,當用戶信息保存成功時,把這條消息發送到消息隊列。驗證碼系統會監聽消息,一旦接受到消息,就會給該用戶發送驗證碼。

2、如何防止消息重復發送?

解決方法很簡單:增加消息狀態表。通俗來說就是一個賬本,用來記錄消息的處理狀態,每次處理消息之前,都去狀態表中查詢一次。如果已經有相同的消息存在,那么不處理,可以防止重復發送。

3、了解哪些消息隊列?

ActiveMQ、RabbitMQ、kafka。

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

ActiveMQ是Apache下的一個子項目。類似于ZeroMQ,它能夠以代理人和點對點的技術實現隊列。同時類似于RabbitMQ,它少量代碼就可以高效地實現高級應用場景。

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

● MQ選型對比圖

4、ActiveMQ如果消息發送失敗怎么辦?

Activemq有兩種通信方式,點到點形式和發布訂閱模式。

如果是點到點模式的話,如果消息發送不成功,此消息默認會保存到activemq服務端知道有消費者將其消費,所以此時消息是不會丟失的。

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

全部教程
主站蜘蛛池模板: 国产欧美一区二区三区免费 | 色综合天天综合网亚洲影院 | 青春草禁区视频在线观看 | 一二三区在线观看 | 在线成人天天鲁夜啪视频 | 亚洲男人的天堂在线视频 | 日日夜夜精品 | 亚洲国产精品久久久久久 | 一区二区三区免费视频网站 | 九九热在线精品 | 国产精品福利视频免费观看 | 四虎永久在线精品免费观看地址 | 不卡不卡| 奇米影视666| 97视频免费在线观看 | 5151四虎永久在线精品免费 | 四虎欧美永久在线精品免费 | 福利视频午夜 | 狠狠色噜噜狠狠狠888奇米 | 九九99香蕉在线视频网站 | 九九热视频免费观看 | 天天操夜夜操天天操 | 精品久久洲久久久久护士 | 四虎影院永久地址 | 免费aa毛片 | 日韩欧美国产偷亚洲清高 | 精品亚洲综合久久中文字幕 | 中文字幕在线日本 | 免费女人18毛片a级毛片视频 | 久久久伊香蕉网站 | 又粗又大的机巴好爽视频视频 | 五月婷影院 | 成年女人毛片免费视频 | 四虎影视在线观看 | 精品综合久久久久久98 | 天天摸夜夜摸夜夜狠狠摸 | 一级aaa级毛片午夜在线播放 | 亚洲精品456| 狠狠狠狠狠狠干 | 青草视频.com | 日韩视频在线观看一区 |