<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為了應對高並行環境下的伺服器端程式設計,xx提出了一個實現非同步程式設計的方案 -Reactive Programming,中文名稱反應式程式設計。反應式程式設計(reactive programming)並不是一個新的概念,也不是一個新的技術,很早之前就被提出來了。
先從幾個概念入門說起:
反應式程式設計 (reactive programming) 是一種基於資料流 (data stream) 和 變化傳遞 (propagation of change) 的宣告式 (declarative) 的程式設計正規化。
響應式程式設計使用三個核心概念:資料流,變化傳遞和非同步觀察。
換句話說:使用非同步資料流進行程式設計,這意味著可以在程式語言中很方便地表達靜態或動態的資料流,而相關的計算模型會自動將變化的值通過資料流進行傳播。反應式程式設計提高了程式碼的抽象級別,可以只關注定義了業務邏輯的那些相互依賴的事件。
Reactive Streams :The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure。
Reactive Streams 的目的是為具有非阻塞背壓的非同步流處理提供標準。
對於Java程式設計師,Reactive Streams是一個API。Reactive Streams為我們提供了Java中的Reactive Programming的通用API。
Reactive Streams API的範圍是找到一組最小的介面,方法和協定,這些介面,方法和協定將描述必要的操作和實體,從而實現具有非阻塞背壓的非同步資料流。
Reactive Streams API
中如下四個介面:(後面文章詳細)
public interface Publisher<T> { public void subscribe(Subscriber<? super T> s); }
public interface Subscriber<T> { public void onSubscribe(Subscription s); public void onNext(T t); public void onError(Throwable t); public void onComplete(); }
public interface Subscription { public void request(long n); public void cancel(); }
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> { }
Reactor 是第四代響應式庫,基於Reactive Streams規範,用於在 JVM 上構建非阻塞應用程式。是Spring提供的非阻塞式響應式程式設計框架,實現了Reactive Streams規範而已
Flux 表示的是包含 0 到 N 個元素的非同步序列。在該序列中可以包含三種不同型別的訊息通知:正常的包含元素的訊息、序列結束的訊息和序列出錯的訊息。當訊息通知產生時,訂閱者中對應的方法 onNext(), onComplete()和 onError()會被呼叫。Mono 表示的是包含 0 或者 1 個元素的非同步序列。該序列中同樣可以包含與 Flux 相同的三種型別的訊息通知。Flux 和 Mono 之間可以進行轉換。對一個 Flux 序列進行計數操作,得到的結果是一個 Mono物件。把兩個 Mono 序列合併在一起,得到的是一個 Flux 物件。
Spring 產品組合提供了兩個並行堆疊。 一種是基於帶有 Spring MVC 和 Spring Data 結構的 Servlet API。 另一個是完全反應式堆疊,它利用了 Spring WebFlux 和 Spring Data 的反應式儲存庫。 如下技術棧:Spring官方提供
資料庫:以一種反應的方式存取和處理資料是非常重要的。MongoDB、Redis和Cassandra都有原生的Spring資料響應支援。許多關聯式資料庫(Postgres、Microsoft SQL Server、MySQL、H2和GoogleSpanner)通過R2DBC提供了反應性支援。
在訊息傳遞的世界中,Spring Cloud Stream還支援對RabbitMQ和Kafka等平臺的反應性存取。
上面介紹了反應式程式設計的一些概念。三者的關係:
參考:
以上就是Reactive Programming入門概念詳解的詳細內容,更多關於Reactive Programming入門的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45