Reactor 響應式編程

響應式編程介紹

響應式編程是一種編程範式,若是你瞭解事件編程,觀察者模式,理解這個機率並不難,響應式編程宣言包含了四組關鍵字:react

  • Responsive: 可響應的。要求系統儘量作到在任什麼時候候都能及時響應。
  • Resilient: 可恢復的。要求系統即便出錯了,也能保持可響應性。
  • Elastic: 可伸縮的。要求系統在各類負載下都能保持可響應性。
  • Message Driven: 消息驅動的。要求系統經過異步消息鏈接各個組件。

反應式流中第一個重要概念是負壓(backpressure)。在基本的消息推送模式中,當消息發佈者產生數據的速度過快時,會使得消息訂閱者的處理速度沒法跟上產生的速度,從而給訂閱者形成很大的壓力。當壓力過大時,有可能形成訂閱者自己的奔潰,所產生的級聯效應甚至可能形成整個系統的癱瘓。負壓的做用在於提供一種從訂閱者到生產者的反饋渠道。訂閱者能夠經過 request()方法來聲明其一次所能處理的消息數量,而生產者就只會產生相應數量的消息,直到下一次 request()方法調用。這實際上變成了推拉結合的模式。git

Reactor 簡介

前面提到的 RxJava 庫是 JVM 上反應式編程的先驅,也是反應式流規範的基礎。RxJava 2 在 RxJava 的基礎上作了不少的更新。不過 RxJava 庫也有其不足的地方。RxJava 產生於反應式流規範以前,雖然能夠和反應式流的接口進行轉換,可是因爲底層實現的緣由,使用起來並非很直觀。RxJava 2 在設計和實現時考慮到了與規範的整合,不過爲了保持與 RxJava 的兼容性,不少地方在使用時也並不直觀。Reactor 則是徹底基於反應式流規範設計和實現的庫,沒有 RxJava 那樣的歷史包袱,在使用上更加的直觀易懂。Reactor 也是 Spring 5 中反應式編程的基礎。學習和掌握 Reactor 能夠更好地理解 Spring 5 中的相關概念。編程

在 Java 程序中使用 Reactor 庫很是的簡單,只須要經過 Maven 或 Gradle 來添加對 io.projectreactor:reactor-core 的依賴便可。異步

DEMO

https://gitee.com/chenjian097/reactor-demo學習

相關文章
相關標籤/搜索