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

全部教程
主站蜘蛛池模板: 成人午夜爽爽爽免费视频 | 老司机永久免费视频 | 欧美亚洲另类色国产综合 | 波多野结衣亚洲 | 九九精品视频在线 | 午夜操一操 | 亚洲男女在线 | 国产探花一区 | 狠狠干综合 | 午夜国产精品理论片久久影院 | 五月色婷婷亚洲精品 | 日本私人影院 | 欧美日本综合一区二区三区 | 国产精品久久久久三级 | 国产真实伦视频在线视频 | 一级一级一级毛片 | 天天视频黄 | 亚洲偷图色综合色就色 | 青青免费视频精品一区二区 | 就色干综合 | 奇米影视在线观看 | 九九99热 | 热er99久久6国产精品免费 | 亚洲午夜一级毛片 | 久热免费在线观看 | 四虎伦理 | 色网站在线 | 亚洲欧美另类久久久精品能播放的 | 手机看片一区二区 | 在线私人影院 | 99久久精品费精品国产一区二区 | 橘梨纱视频一区二区在线观看 | 亚洲国产综合自在线另类 | 99精品一区二区免费视频 | 四虎影视成人永久在线播放 | 成人在线视频国产 | 成人精品一区久久久久 | 深夜福利国产 | 亚洲99久久久久综合 | 伦理不卡| 亚洲瑟瑟|