华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java教程 >> 文章內(nèi)容

Java響應(yīng)式關(guān)系數(shù)據(jù)庫(kù)

來源:中華考試網(wǎng)  [2020年11月11日]  【

  1、前言響應(yīng)式編程已經(jīng)在 Java 編程領(lǐng)域出現(xiàn)很長(zhǎng)一段時(shí)間了。具有高性能,事件驅(qū)動(dòng),充分利用計(jì)算資源,更加優(yōu)雅的異步編程體驗(yàn),同時(shí)它也提供了背壓機(jī)制來防止系統(tǒng)過載。很長(zhǎng)一段時(shí)間 Java 的響應(yīng)式只能同 MongoDB、Redis 等這些非關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行交互。而目前我們大部分的數(shù)據(jù)還是存放在關(guān)系型數(shù)據(jù)庫(kù)中,大部分情況下 Java 使用 JDBC 來操作關(guān)系型數(shù)據(jù)庫(kù),而 JDBC 是阻塞的、同步的。所以迫切需要一種支持響應(yīng)式的數(shù)據(jù)庫(kù)驅(qū)動(dòng)協(xié)議。目前市面上有兩種響應(yīng)式數(shù)據(jù)庫(kù)驅(qū)動(dòng)協(xié)議,我們來了解一下它們。

  2、ADBAADBA[1] 是 Oracle 主導(dǎo)的 Java 異步數(shù)據(jù)庫(kù)訪問的標(biāo)準(zhǔn) API 。它的目的性是集成于未來 Java 的標(biāo)準(zhǔn)發(fā)行版中,目前發(fā)展比較慢,目前只提供OpenJDK的沙盒特性[2]供開發(fā)者研究之用。它不打算作為 JDBC 的擴(kuò)展或替代,而是一個(gè)完全獨(dú)立的 API,該 API 提供對(duì) JDBC 相同數(shù)據(jù)庫(kù)的完全無(wú)阻塞訪問。

  3、R2DBCSpring 官方在 Spring 5 發(fā)布了響應(yīng)式 Web 框架 Spring WebFlux 之后急需能夠滿足異步響應(yīng)的數(shù)據(jù)庫(kù)交互 API 。由于缺乏標(biāo)準(zhǔn)和驅(qū)動(dòng),Pivotal(Spring 官方) 團(tuán)隊(duì)開始研究反應(yīng)式關(guān)系型數(shù)據(jù)庫(kù)連接(Reactive Relational Database Connectivity),并提出了R2DBC 規(guī)范 API 以評(píng)估可行性并討論數(shù)據(jù)庫(kù)廠商是否有興趣支持反應(yīng)式的異步非阻塞驅(qū)動(dòng)程序。最開始只有 PostgreSQL 、H2、MSSQL 三家,現(xiàn)在MySQL 也加入了進(jìn)來。R2DBC 最新版本是0.8.1.RELEASE。除了驅(qū)動(dòng)實(shí)現(xiàn)外還提供了 **R2DBC** 連接池 [3] 和 R2DBC 代理[4]。除此之外還支持云原生應(yīng)用。

  3.1 可用的 R2DBC 驅(qū)動(dòng)實(shí)現(xiàn)

  填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽java課程!害怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國(guó)推薦就業(yè)!

預(yù)約申請(qǐng)免費(fèi)聽java課程

  • 地區(qū):
  • 姓名:
  • 手機(jī):

  目前可用的驅(qū)動(dòng)有:

  cloud-spanner-r2dbc[5]:用于Google Cloud Spanner的驅(qū)動(dòng)程序

  jasync-sql[6]:Java和Kotlin的R2DBC包裝器,用Kotlin編寫的MySQL和PostgreSQL異步數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。

  r2dbc-h2[7]:為H2實(shí)現(xiàn)的原生驅(qū)動(dòng)程序,以方便作為測(cè)試數(shù)據(jù)庫(kù)。

  r2dbc-postgres[8]:為PostgreSQL實(shí)現(xiàn)的原生驅(qū)動(dòng)程序。

  r2dbc-mssql[9]:為Microsoft SQL Server實(shí)現(xiàn)的原生驅(qū)動(dòng)程序。

  r2dbc-mysql[10]:為MySQL實(shí)現(xiàn)的原生驅(qū)動(dòng)程序。

  4、總結(jié)我們需要明確一點(diǎn),無(wú)論 ADBA 還是 R2DBC 都不是為了取代 JDBC 。只是為了補(bǔ)充在響應(yīng)式編程下的空白。至于響應(yīng)式的未來如何,目前還不是很明朗,但是發(fā)展很迅速,我還是很看好的。就目前來說 ADBA 具有官方加持的優(yōu)勢(shì),而 R2DBC 具有活躍的社區(qū)優(yōu)勢(shì),究竟誰(shuí)是業(yè)界規(guī)則的領(lǐng)導(dǎo)者,相信很快就會(huì)揭曉。

責(zé)編:fushihao
  • 會(huì)計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語(yǔ)考試
  • 學(xué)歷考試
新余市| 万盛区| 霍邱县| 泰安市| 扬州市| 时尚| 前郭尔| 库车县| 赣州市| 若羌县| 茶陵县| 社会| 周宁县| 伊吾县| 青岛市| 巫山县| 基隆市| 成安县| 台湾省| 陇西县| 达孜县| 扎鲁特旗| 宜昌市| 辽源市| 扬中市| 乌拉特中旗| 邓州市| 怀化市| 闸北区| 永登县| 漳州市| 香港| 新乡市| 兰坪| 湘潭市| 霸州市| 韶关市| 和田市| 屏东县| 万全县| 关岭|