Rx響應式編程

RX響應式編程就是異步數據流編程:單擊事件或事件總線;(觀察者模式)編程

有一堆的函數可以建立流,也能將任何流-,也能將任何流進行組合和過濾.一個流可以做爲另外一個流的輸入,可以將兩個流合併,能夠經過過濾流獲得須要的事件
響應式編程是但願經過某種方式創建聯繫,而不是執行某種賦值操做(命令);
int a = 1;
int b = a+1;
messagebox.show(b);/b= 2;
a = 10
messagebox.show(b);//b=11
響應式:
int a = 1;
int b <= a+1; ///<=符號只是表明A和B之間的關係的操做符
messagebox.show(b);/b= 2;
a = 10
messagebox.show(b);//b=11
RX是響應式的擴展,即支持響應式編程的一種擴展,
異步和數據流都是爲了正確的構建事物的關係而存在,異步是爲了區分無關的事務,數據流是爲了聯繫起有關的事物.數組

優點:
在業務層面實現代碼邏輯分離,方便後期維護和拓展;
極大的提升程序的響應速度,充分發掘CPU的能力;
幫助開發者提升代碼的抽象能力和充分理解業務邏輯;
Rx豐富的操做符會幫助咱們極大地簡化代碼邏輯.異步

響應式編程的關鍵就是將異步可觀查對象模塊化. Rx有兩種常見模式,一是觀察者模式,其二是迭代模式分佈式

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

數據流(Data streams): 分爲靜態數據流(數組,文件)和動態數據流(事件流,日誌流);
變化傳播(The propagation change):簡單的來講,就是以一個數據流做爲輸入,通過轉變轉化成另外一個數據流,而後分發給訂閱者的過程.異步編程

RP包含了三個特性:
描述而非執行:在執行subscribe()方法以前沒有任何事情發生,比如不管多長的水管,只要水龍頭不開,水管裏的水就不會流動.
提升吞吐量,相似於HTTP/2中的鏈接複用,經過線程提升吞吐量;
背壓支持:背壓就是一種反饋機制,使用背壓,訂閱者只須要發起一次請求,就能接二連三的重複請求數據.
問題:
使用複用線程有助於提升吞吐量,可是一旦在某個回調函數中被卡住,,整個線程都會被阻塞,甚至程序被拖垮;
難以調試;
響應式編程是異步編程下的子集;也是一個範式;響應式編程通常是事件驅動event-driven相比之下,響應式系統是消息驅動Message-dirven的;
響應式編程--專一於短期的數據流鏈條上的計算--所以傾向事件驅動;
響應式系統--關注於經過分佈式的通訊和協做所獲得的彈性和韌性--則是消息驅動的.函數

相關文章
相關標籤/搜索