1、目標:考慮使用一個工具以前,必定要深入理解本身的目標是什麼,要解決的問題是什麼,是否有業務意義,或者商業價值。沒目標作事就是瞎掰,沒目標或者也是瞎掰。 java
2、場景之一:日誌。偶爾會用到複雜的日誌系統,日誌要寫不少地方,時間被拉長 安全
3、場景之二:複雜的業務,可是能夠並行。本人使用過的場景就是抓數據--》分析,數據抓取後,進行多角度的分析是能夠並行的。 服務器
4、場景之三:某些技術場景。如咱們公司的系統多系統對接,常常互發消息,發消息的前提就是對方系統是活着的,俗說的握手,偶爾系統故障,或者跨區域延遲高--------耗時。因此非實時應答需求也使用異步交互。 架構
5、有保障的異步:disruptor。速度效率極快,適用要求嚴格步驟的異步。它的異步能夠像一個樹形結構同樣執行程序,父子節點有前後順序,同級節點能夠並行,而且多個子節點能夠收斂到一個孫子節點,孫子節點能夠等全部父節點執行完畢再執行。 它是起於一個銀行系統。 異步
6、無保障的異步:akka是個表明做。消息發完就無論了,甚至在發消息同時你關閉系統都無所謂,它不作任何保障承諾,因此用於非嚴格數據安全場景。 工具
7、一般咱們用於標準的符合java JMS標準的消息服務器是也能夠認爲是異步的。它們通常能夠無保障和有保障的發送消息,經過設定不一樣的參數。如activemq等。 性能
8、異步是一個系統發展趨勢。性能是考慮的一方面,更重要的是從架構上來說它分離關注點,不只編碼能夠分離,甚至將來有可能發展出專有硬件來支撐軟件。 編碼