大战熟女丰满人妻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注冊。發布消息和接收消息時需要配置發送模式為持久化。此時如果客戶端接收不到消息,消息會持久化到服務端,直到客戶端正常接收后為止。

全部教程
主站蜘蛛池模板: 女人一级一级毛片 | 欧美一区a | 免费看一级毛片欧美 | 欧美日韩乱码毛片免费观看 | 日本伊人精品一区二区三区 | 欧美一区2区三区3区公司 | 成人欧美一区二区三区视频 | 四虎视频网站 | 色婷婷久久免费网站 | 又粗又大的机巴好爽视频视频 | 欧美成人精品不卡视频在线观看 | 四虎影院免费在线播放 | 四虎永久在线精品国产 | 四虎影院在线看 | 番茄视频在线观看黄版本免费 | 2021国产成人综合亚洲精品 | 国产亚洲女人久久久久久 | 久久精品亚洲牛牛影视 | 四虎免费久久影院 | 狠狠色噜噜狠狠狠狠网站视频 | 亚洲国产一区二区在线 | 黄视频网站免费看 | 国产精品美女www爽爽爽视频 | 国产毛片精品 | 天天射天天干天天舔 | 激情宗合网 | 5060网一级毛片免费观看 | 欧美久久久久欧美一区 | 久久一本精品 | 高清免费毛片 | 国产精品亚洲高清一区二区 | 亚洲视屏在线观看 | 久久久久久久久66精品片 | 日韩美一区二区 | 亚洲国产精品a一区 | 日韩天天操 | 99se亚洲综合色区 | 阳光灿烂的日子在线观看 | 久久香蕉国产线看精品 | 婷婷的五月 | 久久不见久久见免费影院 |