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

第一部分 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注冊。發布消息和接收消息時需要配置發送模式為持久化。此時如果客戶端接收不到消息,消息會持久化到服務端,直到客戶端正常接收后為止。

全部教程
主站蜘蛛池模板: 免费91最新地址永久入口 | 黄色片免费在线观看 | 午夜成私人影院在线观看 | 亚洲一区二区三区高清 不卡 | 亚洲激情成人网 | 日韩字幕一中文在线综合 | 亚洲午夜视频在线观看 | 国产黄色片在线播放 | 久青草中文字幕精品视频 | 天天操美女逼 | 亚洲丁香色婷婷综合欲色啪 | 五月婷婷狠狠干 | 国内精品九一在线播放 | 免费无遮挡十八污污网站 | 免费黄色三级 | 亚洲欧美精品一中文字幕 | 欧美精品videossex变态 | 成人在线观看不卡 | 欧美青青草 | 欧美色图偷窥自拍 | 中文国产在线观看 | 欧美国产日韩综合 | 国产成人精彩在线视频50 | 久久综合给会久久狠狠狠 | 国产h在线播放 | 免费簧网站永久在线播放国产 | 看污网址 | 日本www色视频萌爱网 | 日韩黄色免费观看 | 亚洲精品视频导航 | 久久99精品久久久久久欧洲站 | 99re热久久这里只有精品6 | 91丝瓜视频最新版 | 成人短视频在线观看免费 | aaaaaa毛片免费看 | 国产欧美在线不卡 | 高清一级毛片 | 草草线在成人免费视频 | 日本黄色片三级 | 日韩免费一级a毛片在线播放一级 | 色老头在线视频 |