成人无码视频在线观看_午夜亚洲AⅤ无码高潮片苍井空 _性做久久久久久久_拧花蒂尿用力按凸起喷水尿视频 _欧美丰满美乳XXⅩ高潮WWW_一边下奶一边吃面膜视频讲解图片 _久久久久久久99精品国产片_书房双乳晃动干柴烈火视频_在线观看亚洲一区

聚集網(wǎng)(jujiwang.com) - 收錄免費(fèi)分類目錄信息軟文發(fā)布網(wǎng)址提交
免費(fèi)加入

Restlet 與 Node.js 集成:為 JavaScript 開發(fā)人員打造 RESTful API (restless)

文章編號(hào):10780時(shí)間:2024-09-29人氣:


簡(jiǎn)介Restlet 是一個(gè) Java Web 框架,旨在簡(jiǎn)化 RESTful API 的開發(fā)。它提供了豐富的特性,包括資源管理、URI 路由、消息處理和安全。Node.js 是一個(gè) JavaScript 運(yùn)行時(shí)環(huán)境,用于構(gòu)建網(wǎng)絡(luò)應(yīng)用程序。將 Restlet 與 Node.js 集成可以為 JavaScript 開發(fā)人員提供構(gòu)建強(qiáng)大且可擴(kuò)展的 RESTful API 的能力。集成步驟Restlet 提供了一個(gè)名為 `restless` 的 Node.js 模塊,可以輕松與 Node.js 集成。以下是集成步驟:1. 安裝 `restless` 模塊: bash npm install restless2. 創(chuàng)建一個(gè)新的 Restlet 應(yīng)用程序: javascript const restless = require('restless'); const app = restless.createServer();3. 定義資源和方法: javascript app.resource('/users').get((req, res) => {res.send('List of users'); });app.resource('/users/:id').get((req, res) => {const id = req.params.id;res.send(`User with ID ${id}`); });Restlet 特性通過 `restless` 模塊,JavaScript 開發(fā)人員可以利用 Restlet 的以下特性:資源定義:定義 RESTful 資源,指定 URI 路徑和支持的方法。URI 路由:基于請(qǐng)求的 URI 將請(qǐng)求路由到適當(dāng)?shù)馁Y源和方法。消息處理:支持 JSON、XML 和文本等各種消息格式。安全:提供身份驗(yàn)證、授權(quán)和跨域請(qǐng)求保護(hù)。擴(kuò)展性:允許創(chuàng)建自定義組件和中間件以擴(kuò)展應(yīng)用程序功能。好處Restlet 與 Node.js 集成提供了許多好處:簡(jiǎn)化的 RESTful API 開發(fā):Restlet 提供了一個(gè)直觀的 API,可用于輕松定義 RESTful 資源和方法。高性能 與

如何處理restful對(duì)接口安全性問題

REST (REpresentation State Transfer) 描述了一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),比如 web 應(yīng)用程序。 它首次出現(xiàn)在 2000 年 Roy Fielding 的博士論文中,他是 HTTP 規(guī)范的主要編寫者之一。 REST 指的是一組架構(gòu)約束條件和原則。 滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是 RESTful。 Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無狀態(tài)的。 從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。 如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。 此外,無狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。 客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。 在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。 資源是一個(gè)有趣的概念實(shí)體,它向客戶端公開。 資源的例子有:應(yīng)用程序?qū)ο蟆?shù)據(jù)庫(kù)記錄、算法等等。 每個(gè)資源都使用 URI (Universal Resource Identifier) 得到一個(gè)惟一的地址。 所有資源都共享統(tǒng)一的界面,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。 使用的是標(biāo)準(zhǔn)的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。 另一個(gè)重要的 REST 原則是分層系統(tǒng),這表示組件無法了解它與之交互的中間層以外的組件。 通過將系統(tǒng)知識(shí)限制在單個(gè)層,可以限制整個(gè)系統(tǒng)的復(fù)雜性,促進(jìn)了底層的獨(dú)立性。 當(dāng)REST 架構(gòu)的約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)可以擴(kuò)展到大量客戶端的應(yīng)用程序。 它還降低了客戶端和服務(wù)器之間的交互延遲。 統(tǒng)一界面簡(jiǎn)化了整個(gè)系統(tǒng)架構(gòu),改進(jìn)了子系統(tǒng)之間交互的可見性。 REST 簡(jiǎn)化了客戶端和服務(wù)器的實(shí)現(xiàn)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)與 RPC 樣式的 Web 服務(wù)了解了什么是什么是REST,我們?cè)倏纯碦ESTful的實(shí)現(xiàn)。 最近,使用 RPC 樣式架構(gòu)構(gòu)建的基于 SOAP 的 Web 服務(wù)成為實(shí)現(xiàn) SOA 最常用的方法。 RPC 樣式的 Web 服務(wù)客戶端將一個(gè)裝滿數(shù)據(jù)的信封(包括方法和參數(shù)信息)通過 HTTP 發(fā)送到服務(wù)器。 服務(wù)器打開信封并使用傳入?yún)?shù)執(zhí)行指定的方法。 方法的結(jié)果打包到一個(gè)信封并作為響應(yīng)發(fā)回客戶端。 客戶端收到響應(yīng)并打開信封。 每個(gè)對(duì)象都有自己獨(dú)特的方法以及僅公開一個(gè) URI 的 RPC 樣式 Web 服務(wù),URI 表示單個(gè)端點(diǎn)。 它忽略 HTTP 的大部分特性且僅支持 POST 方法。 由于輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,Web 服務(wù)的 RESTful 方法已經(jīng)成為最常見的替代方法。 可以使用各種語(yǔ)言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])實(shí)現(xiàn)客戶端。 RESTful Web 服務(wù)通常可以通過自動(dòng)客戶端或代表用戶的應(yīng)用程序訪問。 但是,這種服務(wù)的簡(jiǎn)便性讓用戶能夠與之直接交互,使用它們的 Web 瀏覽器構(gòu)建一個(gè) GET URL 并讀取返回的內(nèi)容。 在REST 樣式的 Web 服務(wù)中,每個(gè)資源都有一個(gè)地址。 資源本身都是方法調(diào)用的目標(biāo),方法列表對(duì)所有資源都是一樣的。 這些方法都是標(biāo)準(zhǔn)方法,包括 HTTP GET、POST、PUT、DELETE,還可能包括 HEADER 和 OPTIONS。 在RPC 樣式的架構(gòu)中,關(guān)注點(diǎn)在于方法,而在 REST 樣式的架構(gòu)中,關(guān)注點(diǎn)在于資源 -- 將使用標(biāo)準(zhǔn)方法檢索并操作信息片段(使用表示的形式)。 資源表示形式在表示形式中使用超鏈接互聯(lián)。 Leonard Richardson 和 Sam Ruby 在他們的著作 RESTful Web Services 中引入了術(shù)語(yǔ) REST-RPC 混合架構(gòu)。 REST-RPC 混合 Web 服務(wù)不使用信封包裝方法、參數(shù)和數(shù)據(jù),而是直接通過 HTTP 傳輸數(shù)據(jù),這與 REST 樣式的 Web 服務(wù)是類似的。 但是它不使用標(biāo)準(zhǔn)的 HTTP 方法操作資源。 它在 HTTP 請(qǐng)求的 URI 部分存儲(chǔ)方法信息。 好幾個(gè)知名的 Web 服務(wù),比如 Yahoo 的 Flickr API 和 API 都使用這種混合架構(gòu)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)的 Java 框架有兩個(gè) Java 框架可以幫助構(gòu)建 RESTful Web 服務(wù)。 erome Louvel 和 Dave Pawson 開發(fā)的 Restlet(見 參考資料)是輕量級(jí)的。 它實(shí)現(xiàn)針對(duì)各種 RESTful 系統(tǒng)的資源、表示、連接器和媒體類型之類的概念,包括 Web 服務(wù)。 在 Restlet 框架中,客戶端和服務(wù)器都是組件。 組件通過連接器互相通信。 該框架最重要的類是抽象類 Uniform 及其具體的子類 Restlet,該類的子類是專用類,比如 Application、Filter、Finder、Router 和 Route。 這些子類能夠一起處理驗(yàn)證、過濾、安全、數(shù)據(jù)轉(zhuǎn)換以及將傳入請(qǐng)求路由到相應(yīng)資源等操作。 Resource 類生成客戶端的表示形式。 JSR-311是 Sun Microsystems 的規(guī)范,可以為開發(fā) RESTful Web 服務(wù)定義一組 Java API。 Jersey是對(duì) JSR-311 的參考實(shí)現(xiàn)。 JSR-311 提供一組注釋,相關(guān)類和接口都可以用來將 Java 對(duì)象作為 Web 資源展示。 該規(guī)范假定 HTTP 是底層網(wǎng)絡(luò)協(xié)議。 它使用注釋提供 URI 和相應(yīng)資源類之間的清晰映射,以及 HTTP 方法與 Java 對(duì)象方法之間的映射。 API 支持廣泛的 HTTP 實(shí)體內(nèi)容類型,包括 HTML、XML、JSON、GIF、JPG 等。 它還將提供所需的插件功能,以允許使用標(biāo)準(zhǔn)方法通過應(yīng)用程序添加其他類型。 RESTful的實(shí)現(xiàn):構(gòu)建 RESTful Web 服務(wù)的多層架構(gòu)RESTful Web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序在許多方面都是類似的。 有時(shí)它們提供相同或非常類似的數(shù)據(jù)和函數(shù),盡管客戶端的種類不同。 例如,在線電子商務(wù)分類網(wǎng)站為用戶提供一個(gè)瀏覽器界面,用于搜索、查看和訂購(gòu)產(chǎn)品。 如果還提供 Web 服務(wù)供公司、零售商甚至個(gè)人能夠自動(dòng)訂購(gòu)產(chǎn)品,它將非常有用。 與大部分動(dòng)態(tài) Web 應(yīng)用程序一樣,Web 服務(wù)可以從多層架構(gòu)的關(guān)注點(diǎn)分離中受益。 業(yè)務(wù)邏輯和數(shù)據(jù)可以由自動(dòng)客戶端和 GUI 客戶端共享。 惟一的不同點(diǎn)在于客戶端的本質(zhì)和中間層的表示層。 此外,從數(shù)據(jù)訪問中分離業(yè)務(wù)邏輯可實(shí)現(xiàn)數(shù)據(jù)庫(kù)獨(dú)立性,并為各種類型的數(shù)據(jù)存儲(chǔ)提供插件能力。 圖1 展示了自動(dòng)化客戶端,包括 Java 和各種語(yǔ)言編寫的腳本,這些語(yǔ)言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在瀏覽器中運(yùn)行且作為 RESTful Web 服務(wù)消費(fèi)者運(yùn)行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都屬于此列,因?yàn)樗鼈兌即碛脩粢宰詣?dòng)化樣式運(yùn)行。 自動(dòng)化 Web 服務(wù)客戶端在 Web 層向 Resource Request Handler 發(fā)送 HTTP 響應(yīng)。 客戶端的無狀態(tài)請(qǐng)求在頭部包含方法信息,即 POST、GET、PUT 和 DELETE,這又將映射到 Resource Request Handler 中資源的相應(yīng)操作。 每個(gè)請(qǐng)求都包含所有必需的信息,包括 Resource Request Handler 用來處理請(qǐng)求的憑據(jù)。 從Web 服務(wù)客戶端收到請(qǐng)求之后,Resource Request Handler 從業(yè)務(wù)邏輯層請(qǐng)求服務(wù)。 Resource Request Handler 確定所有概念性的實(shí)體,系統(tǒng)將這些實(shí)體作為資源公開,并為每個(gè)資源分配一個(gè)惟一的 URI。 但是,概念性的實(shí)體在該層是不存在的。 它們存在于業(yè)務(wù)邏輯層。 可以使用 Jersey 或其他框架(比如 Restlet)實(shí)現(xiàn) Resource Request Handler,它應(yīng)該是輕量級(jí)的,將大量職責(zé)工作委托給業(yè)務(wù)層。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。 它們都可以利用大量 Web 技術(shù)和標(biāo)準(zhǔn),比如 HTML、JavaScript、瀏覽器對(duì)象、XML/JSON 和 HTTP。 當(dāng)然也不需要購(gòu)買、安裝或配置任何主要組件來支持 Ajax 前端和 RESTful Web 服務(wù)之間的交互。 RESTful Web 服務(wù)為 Ajax 提供了非常簡(jiǎn)單的 API 來處理服務(wù)器上資源之間的交互。 圖1 中的 Web 瀏覽器客戶端作為 GUI 的前端,使用表示層中的 Browser Request Handler 生成的 HTML 提供顯示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它從瀏覽器接受請(qǐng)求,從業(yè)務(wù)邏輯層請(qǐng)求服務(wù),生成表示并對(duì)瀏覽器做出響應(yīng)。 表示供用戶在瀏覽器中顯示使用。 表示不僅包含內(nèi)容,還包含顯示的屬性,比如 HTML 和 CSS。 業(yè)務(wù)規(guī)則可以集中到業(yè)務(wù)邏輯層,該層充當(dāng)表示層和數(shù)據(jù)訪問層之間的數(shù)據(jù)交換的中間層。 數(shù)據(jù)以域?qū)ο蠡蛑祵?duì)象的形式提供給表示層。 從業(yè)務(wù)邏輯層中解耦 Browser Request Handler 和 Resource Request Handler 有助于促進(jìn)代碼重用,并能實(shí)現(xiàn)靈活和可擴(kuò)展的架構(gòu)。 此外,由于將來可以使用新的 REST 和 MVC 框架,實(shí)現(xiàn)它們變得更加容易,無需重寫業(yè)務(wù)邏輯層。 數(shù)據(jù)訪問層提供與數(shù)據(jù)存儲(chǔ)層的交互,可以使用 DAO 設(shè)計(jì)模式或者對(duì)象-關(guān)系映射解決方案(如 Hibernate、OJB 或 iBATIS)實(shí)現(xiàn)。 作為替代方案,業(yè)務(wù)層和數(shù)據(jù)訪問層中的組件可以實(shí)現(xiàn)為 EJB 組件,并取得 EJB 容器的支持,該容器可以為組件生命周期提供便利,管理持久性、事務(wù)和資源配置。 但是,這需要一個(gè)遵從 Java EE 的應(yīng)用服務(wù)器(比如 JBoss),并且可能無法處理 Tomcat。 該層的作用在于針對(duì)不同的數(shù)據(jù)存儲(chǔ)技術(shù),從業(yè)務(wù)邏輯中分離數(shù)據(jù)訪問代碼。 數(shù)據(jù)訪問層還可以作為連接其他系統(tǒng)的集成點(diǎn),可以成為其他 Web 服務(wù)的客戶端。 數(shù)據(jù)存儲(chǔ)層包括數(shù)據(jù)庫(kù)系統(tǒng)、LDAP 服務(wù)器、文件系統(tǒng)和企業(yè)信息系統(tǒng)(包括遺留系統(tǒng)、事務(wù)處理系統(tǒng)和企業(yè)資源規(guī)劃系統(tǒng))。 使用該架構(gòu),您可以開始看到 RESTful Web 服務(wù)的力量,它可以靈活地成為任何企業(yè)數(shù)據(jù)存儲(chǔ)的統(tǒng)一 API,從而向以用戶為中心的 Web 應(yīng)用程序公開垂直數(shù)據(jù),并自動(dòng)化批量報(bào)告腳本。 什么是REST:結(jié)束語(yǔ)REST 描述了一個(gè)架構(gòu)樣式的互聯(lián)系統(tǒng)(如 Web 應(yīng)用程序)。 REST 約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)簡(jiǎn)單、可擴(kuò)展、有效、安全、可靠的架構(gòu)。 由于它簡(jiǎn)便、輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,RESTful Web 服務(wù)成為基于 SOAP 服務(wù)的一個(gè)最有前途的替代方案。 用于 web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序的多層架構(gòu)可以實(shí)現(xiàn)可重用性、簡(jiǎn)單性、可擴(kuò)展性和組件可響應(yīng)性的清晰分離。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。

怎樣用通俗的語(yǔ)言解釋什么叫 REST,以及什么是 RESTful

REST (REpresentation State Transfer) 描述了一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),比如 web 應(yīng)用程序。 它首次出現(xiàn)在 2000 年 Roy Fielding 的博士論文中,他是 HTTP 規(guī)范的主要編寫者之一。 REST 指的是一組架構(gòu)約束條件和原則。 滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是 RESTful。 Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無狀態(tài)的。 從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。 如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。 此外,無狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。 客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。 在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。 資源是一個(gè)有趣的概念實(shí)體,它向客戶端公開。 資源的例子有:應(yīng)用程序?qū)ο蟆?shù)據(jù)庫(kù)記錄、算法等等。 每個(gè)資源都使用 URI (Universal Resource Identifier) 得到一個(gè)惟一的地址。 所有資源都共享統(tǒng)一的界面,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。 使用的是標(biāo)準(zhǔn)的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。 另一個(gè)重要的 REST 原則是分層系統(tǒng),這表示組件無法了解它與之交互的中間層以外的組件。 通過將系統(tǒng)知識(shí)限制在單個(gè)層,可以限制整個(gè)系統(tǒng)的復(fù)雜性,促進(jìn)了底層的獨(dú)立性。 當(dāng)REST 架構(gòu)的約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)可以擴(kuò)展到大量客戶端的應(yīng)用程序。 它還降低了客戶端和服務(wù)器之間的交互延遲。 統(tǒng)一界面簡(jiǎn)化了整個(gè)系統(tǒng)架構(gòu),改進(jìn)了子系統(tǒng)之間交互的可見性。 REST 簡(jiǎn)化了客戶端和服務(wù)器的實(shí)現(xiàn)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)與 RPC 樣式的 Web 服務(wù)了解了什么是什么是REST,我們?cè)倏纯碦ESTful的實(shí)現(xiàn)。 最近,使用 RPC 樣式架構(gòu)構(gòu)建的基于 SOAP 的 Web 服務(wù)成為實(shí)現(xiàn) SOA 最常用的方法。 RPC 樣式的 Web 服務(wù)客戶端將一個(gè)裝滿數(shù)據(jù)的信封(包括方法和參數(shù)信息)通過 HTTP 發(fā)送到服務(wù)器。 服務(wù)器打開信封并使用傳入?yún)?shù)執(zhí)行指定的方法。 方法的結(jié)果打包到一個(gè)信封并作為響應(yīng)發(fā)回客戶端。 客戶端收到響應(yīng)并打開信封。 每個(gè)對(duì)象都有自己獨(dú)特的方法以及僅公開一個(gè) URI 的 RPC 樣式 Web 服務(wù),URI 表示單個(gè)端點(diǎn)。 它忽略 HTTP 的大部分特性且僅支持 POST 方法。 由于輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,Web 服務(wù)的 RESTful 方法已經(jīng)成為最常見的替代方法。 可以使用各種語(yǔ)言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])實(shí)現(xiàn)客戶端。 RESTful Web 服務(wù)通常可以通過自動(dòng)客戶端或代表用戶的應(yīng)用程序訪問。 但是,這種服務(wù)的簡(jiǎn)便性讓用戶能夠與之直接交互,使用它們的 Web 瀏覽器構(gòu)建一個(gè) GET URL 并讀取返回的內(nèi)容。 在REST 樣式的 Web 服務(wù)中,每個(gè)資源都有一個(gè)地址。 資源本身都是方法調(diào)用的目標(biāo),方法列表對(duì)所有資源都是一樣的。 這些方法都是標(biāo)準(zhǔn)方法,包括 HTTP GET、POST、PUT、DELETE,還可能包括 HEADER 和 OPTIONS。 在RPC 樣式的架構(gòu)中,關(guān)注點(diǎn)在于方法,而在 REST 樣式的架構(gòu)中,關(guān)注點(diǎn)在于資源 —— 將使用標(biāo)準(zhǔn)方法檢索并操作信息片段(使用表示的形式)。 資源表示形式在表示形式中使用超鏈接互聯(lián)。 Leonard Richardson 和 Sam Ruby 在他們的著作 RESTful Web Services 中引入了術(shù)語(yǔ) REST-RPC 混合架構(gòu)。 REST-RPC 混合 Web 服務(wù)不使用信封包裝方法、參數(shù)和數(shù)據(jù),而是直接通過 HTTP 傳輸數(shù)據(jù),這與 REST 樣式的 Web 服務(wù)是類似的。 但是它不使用標(biāo)準(zhǔn)的 HTTP 方法操作資源。 它在 HTTP 請(qǐng)求的 URI 部分存儲(chǔ)方法信息。 好幾個(gè)知名的 Web 服務(wù),比如 Yahoo 的 Flickr API 和 API 都使用這種混合架構(gòu)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)的 Java 框架有兩個(gè) Java 框架可以幫助構(gòu)建 RESTful Web 服務(wù)。 erome Louvel 和 Dave Pawson 開發(fā)的 Restlet(見 參考資料)是輕量級(jí)的。 它實(shí)現(xiàn)針對(duì)各種 RESTful 系統(tǒng)的資源、表示、連接器和媒體類型之類的概念,包括 Web 服務(wù)。 在 Restlet 框架中,客戶端和服務(wù)器都是組件。 組件通過連接器互相通信。 該框架最重要的類是抽象類 Uniform 及其具體的子類 Restlet,該類的子類是專用類,比如 Application、Filter、Finder、Router 和 Route。 這些子類能夠一起處理驗(yàn)證、過濾、安全、數(shù)據(jù)轉(zhuǎn)換以及將傳入請(qǐng)求路由到相應(yīng)資源等操作。 Resource 類生成客戶端的表示形式。 JSR-311是 Sun Microsystems 的規(guī)范,可以為開發(fā) RESTful Web 服務(wù)定義一組 Java API。 Jersey是對(duì) JSR-311 的參考實(shí)現(xiàn)。 JSR-311 提供一組注釋,相關(guān)類和接口都可以用來將 Java 對(duì)象作為 Web 資源展示。 該規(guī)范假定 HTTP 是底層網(wǎng)絡(luò)協(xié)議。 它使用注釋提供 URI 和相應(yīng)資源類之間的清晰映射,以及 HTTP 方法與 Java 對(duì)象方法之間的映射。 API 支持廣泛的 HTTP 實(shí)體內(nèi)容類型,包括 HTML、XML、JSON、GIF、JPG 等。 它還將提供所需的插件功能,以允許使用標(biāo)準(zhǔn)方法通過應(yīng)用程序添加其他類型。 RESTful的實(shí)現(xiàn):構(gòu)建 RESTful Web 服務(wù)的多層架構(gòu)RESTful Web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序在許多方面都是類似的。 有時(shí)它們提供相同或非常類似的數(shù)據(jù)和函數(shù),盡管客戶端的種類不同。 例如,在線電子商務(wù)分類網(wǎng)站為用戶提供一個(gè)瀏覽器界面,用于搜索、查看和訂購(gòu)產(chǎn)品。 如果還提供 Web 服務(wù)供公司、零售商甚至個(gè)人能夠自動(dòng)訂購(gòu)產(chǎn)品,它將非常有用。 與大部分動(dòng)態(tài) Web 應(yīng)用程序一樣,Web 服務(wù)可以從多層架構(gòu)的關(guān)注點(diǎn)分離中受益。 業(yè)務(wù)邏輯和數(shù)據(jù)可以由自動(dòng)客戶端和 GUI 客戶端共享。 惟一的不同點(diǎn)在于客戶端的本質(zhì)和中間層的表示層。 此外,從數(shù)據(jù)訪問中分離業(yè)務(wù)邏輯可實(shí)現(xiàn)數(shù)據(jù)庫(kù)獨(dú)立性,并為各種類型的數(shù)據(jù)存儲(chǔ)提供插件能力。 圖1 展示了自動(dòng)化客戶端,包括 Java 和各種語(yǔ)言編寫的腳本,這些語(yǔ)言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在瀏覽器中運(yùn)行且作為 RESTful Web 服務(wù)消費(fèi)者運(yùn)行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都屬于此列,因?yàn)樗鼈兌即碛脩粢宰詣?dòng)化樣式運(yùn)行。 自動(dòng)化 Web 服務(wù)客戶端在 Web 層向 Resource Request Handler 發(fā)送 HTTP 響應(yīng)。 客戶端的無狀態(tài)請(qǐng)求在頭部包含方法信息,即 POST、GET、PUT 和 DELETE,這又將映射到 Resource Request Handler 中資源的相應(yīng)操作。 每個(gè)請(qǐng)求都包含所有必需的信息,包括 Resource Request Handler 用來處理請(qǐng)求的憑據(jù)。 從Web 服務(wù)客戶端收到請(qǐng)求之后,Resource Request Handler 從業(yè)務(wù)邏輯層請(qǐng)求服務(wù)。 Resource Request Handler 確定所有概念性的實(shí)體,系統(tǒng)將這些實(shí)體作為資源公開,并為每個(gè)資源分配一個(gè)惟一的 URI。 但是,概念性的實(shí)體在該層是不存在的。 它們存在于業(yè)務(wù)邏輯層。 可以使用 Jersey 或其他框架(比如 Restlet)實(shí)現(xiàn) Resource Request Handler,它應(yīng)該是輕量級(jí)的,將大量職責(zé)工作委托給業(yè)務(wù)層。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。 它們都可以利用大量 Web 技術(shù)和標(biāo)準(zhǔn),比如 HTML、JavaScript、瀏覽器對(duì)象、XML/JSON 和 HTTP。 當(dāng)然也不需要購(gòu)買、安裝或配置任何主要組件來支持 Ajax 前端和 RESTful Web 服務(wù)之間的交互。 RESTful Web 服務(wù)為 Ajax 提供了非常簡(jiǎn)單的 API 來處理服務(wù)器上資源之間的交互。 圖1 中的 Web 瀏覽器客戶端作為 GUI 的前端,使用表示層中的 Browser Request Handler 生成的 HTML 提供顯示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它從瀏覽器接受請(qǐng)求,從業(yè)務(wù)邏輯層請(qǐng)求服務(wù),生成表示并對(duì)瀏覽器做出響應(yīng)。 表示供用戶在瀏覽器中顯示使用。 表示不僅包含內(nèi)容,還包含顯示的屬性,比如 HTML 和 CSS。 業(yè)務(wù)規(guī)則可以集中到業(yè)務(wù)邏輯層,該層充當(dāng)表示層和數(shù)據(jù)訪問層之間的數(shù)據(jù)交換的中間層。 數(shù)據(jù)以域?qū)ο蠡蛑祵?duì)象的形式提供給表示層。 從業(yè)務(wù)邏輯層中解耦 Browser Request Handler 和 Resource Request Handler 有助于促進(jìn)代碼重用,并能實(shí)現(xiàn)靈活和可擴(kuò)展的架構(gòu)。 此外,由于將來可以使用新的 REST 和 MVC 框架,實(shí)現(xiàn)它們變得更加容易,無需重寫業(yè)務(wù)邏輯層。 數(shù)據(jù)訪問層提供與數(shù)據(jù)存儲(chǔ)層的交互,可以使用 DAO 設(shè)計(jì)模式或者對(duì)象-關(guān)系映射解決方案(如 Hibernate、OJB 或 iBATIS)實(shí)現(xiàn)。 作為替代方案,業(yè)務(wù)層和數(shù)據(jù)訪問層中的組件可以實(shí)現(xiàn)為 EJB 組件,并取得 EJB 容器的支持,該容器可以為組件生命周期提供便利,管理持久性、事務(wù)和資源配置。 但是,這需要一個(gè)遵從 Java EE 的應(yīng)用服務(wù)器(比如 JBoss),并且可能無法處理 Tomcat。 該層的作用在于針對(duì)不同的數(shù)據(jù)存儲(chǔ)技術(shù),從業(yè)務(wù)邏輯中分離數(shù)據(jù)訪問代碼。 數(shù)據(jù)訪問層還可以作為連接其他系統(tǒng)的集成點(diǎn),可以成為其他 Web 服務(wù)的客戶端。 數(shù)據(jù)存儲(chǔ)層包括數(shù)據(jù)庫(kù)系統(tǒng)、LDAP 服務(wù)器、文件系統(tǒng)和企業(yè)信息系統(tǒng)(包括遺留系統(tǒng)、事務(wù)處理系統(tǒng)和企業(yè)資源規(guī)劃系統(tǒng))。 使用該架構(gòu),您可以開始看到 RESTful Web 服務(wù)的力量,它可以靈活地成為任何企業(yè)數(shù)據(jù)存儲(chǔ)的統(tǒng)一 API,從而向以用戶為中心的 Web 應(yīng)用程序公開垂直數(shù)據(jù),并自動(dòng)化批量報(bào)告腳本。 什么是REST:結(jié)束語(yǔ)REST 描述了一個(gè)架構(gòu)樣式的互聯(lián)系統(tǒng)(如 Web 應(yīng)用程序)。 REST 約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)簡(jiǎn)單、可擴(kuò)展、有效、安全、可靠的架構(gòu)。 由于它簡(jiǎn)便、輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,RESTful Web 服務(wù)成為基于 SOAP 服務(wù)的一個(gè)最有前途的替代方案。 用于 web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序的多層架構(gòu)可以實(shí)現(xiàn)可重用性、簡(jiǎn)單性、可擴(kuò)展性和組件可響應(yīng)性的清晰分離。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。

怎樣用通俗的語(yǔ)言解釋什么叫 REST,以及什么是 RESTful

REST (REpresentation State Transfer) 描述了一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),比如 web 應(yīng)用程序。 它首次出現(xiàn)在 2000 年 Roy Fielding 的博士論文中,他是 HTTP 規(guī)范的主要編寫者之一。 REST 指的是一組架構(gòu)約束條件和原則。 滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是 RESTful。 Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無狀態(tài)的。 從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。 如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。 此外,無狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。 客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。 在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。 資源是一個(gè)有趣的概念實(shí)體,它向客戶端公開。 資源的例子有:應(yīng)用程序?qū)ο蟆?shù)據(jù)庫(kù)記錄、算法等等。 每個(gè)資源都使用 URI (Universal Resource Identifier) 得到一個(gè)惟一的地址。 所有資源都共享統(tǒng)一的界面,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。 使用的是標(biāo)準(zhǔn)的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。 Hypermedia 是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。 另一個(gè)重要的 REST 原則是分層系統(tǒng),這表示組件無法了解它與之交互的中間層以外的組件。 通過將系統(tǒng)知識(shí)限制在單個(gè)層,可以限制整個(gè)系統(tǒng)的復(fù)雜性,促進(jìn)了底層的獨(dú)立性。 當(dāng)REST 架構(gòu)的約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)可以擴(kuò)展到大量客戶端的應(yīng)用程序。 它還降低了客戶端和服務(wù)器之間的交互延遲。 統(tǒng)一界面簡(jiǎn)化了整個(gè)系統(tǒng)架構(gòu),改進(jìn)了子系統(tǒng)之間交互的可見性。 REST 簡(jiǎn)化了客戶端和服務(wù)器的實(shí)現(xiàn)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)與 RPC 樣式的 Web 服務(wù)了解了什么是什么是REST,我們?cè)倏纯碦ESTful的實(shí)現(xiàn)。 最近,使用 RPC 樣式架構(gòu)構(gòu)建的基于 SOAP 的 Web 服務(wù)成為實(shí)現(xiàn) SOA 最常用的方法。 RPC 樣式的 Web 服務(wù)客戶端將一個(gè)裝滿數(shù)據(jù)的信封(包括方法和參數(shù)信息)通過 HTTP 發(fā)送到服務(wù)器。 服務(wù)器打開信封并使用傳入?yún)?shù)執(zhí)行指定的方法。 方法的結(jié)果打包到一個(gè)信封并作為響應(yīng)發(fā)回客戶端。 客戶端收到響應(yīng)并打開信封。 每個(gè)對(duì)象都有自己獨(dú)特的方法以及僅公開一個(gè) URI 的 RPC 樣式 Web 服務(wù),URI 表示單個(gè)端點(diǎn)。 它忽略 HTTP 的大部分特性且僅支持 POST 方法。 由于輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,Web 服務(wù)的 RESTful 方法已經(jīng)成為最常見的替代方法。 可以使用各種語(yǔ)言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])實(shí)現(xiàn)客戶端。 RESTful Web 服務(wù)通常可以通過自動(dòng)客戶端或代表用戶的應(yīng)用程序訪問。 但是,這種服務(wù)的簡(jiǎn)便性讓用戶能夠與之直接交互,使用它們的 Web 瀏覽器構(gòu)建一個(gè) GET URL 并讀取返回的內(nèi)容。 在REST 樣式的 Web 服務(wù)中,每個(gè)資源都有一個(gè)地址。 資源本身都是方法調(diào)用的目標(biāo),方法列表對(duì)所有資源都是一樣的。 這些方法都是標(biāo)準(zhǔn)方法,包括 HTTP GET、POST、PUT、DELETE,還可能包括 HEADER 和 OPTIONS。 在RPC 樣式的架構(gòu)中,關(guān)注點(diǎn)在于方法,而在 REST 樣式的架構(gòu)中,關(guān)注點(diǎn)在于資源 —— 將使用標(biāo)準(zhǔn)方法檢索并操作信息片段(使用表示的形式)。 資源表示形式在表示形式中使用超鏈接互聯(lián)。 Leonard Richardson 和 Sam Ruby 在他們的著作 RESTful Web Services 中引入了術(shù)語(yǔ) REST-RPC 混合架構(gòu)。 REST-RPC 混合 Web 服務(wù)不使用信封包裝方法、參數(shù)和數(shù)據(jù),而是直接通過 HTTP 傳輸數(shù)據(jù),這與 REST 樣式的 Web 服務(wù)是類似的。 但是它不使用標(biāo)準(zhǔn)的 HTTP 方法操作資源。 它在 HTTP 請(qǐng)求的 URI 部分存儲(chǔ)方法信息。 好幾個(gè)知名的 Web 服務(wù),比如 Yahoo 的 Flickr API 和 API 都使用這種混合架構(gòu)。 RESTful的實(shí)現(xiàn):RESTful Web 服務(wù)的 Java 框架有兩個(gè) Java 框架可以幫助構(gòu)建 RESTful Web 服務(wù)。 erome Louvel 和 Dave Pawson 開發(fā)的 Restlet(見 參考資料)是輕量級(jí)的。 它實(shí)現(xiàn)針對(duì)各種 RESTful 系統(tǒng)的資源、表示、連接器和媒體類型之類的概念,包括 Web 服務(wù)。 在 Restlet 框架中,客戶端和服務(wù)器都是組件。 組件通過連接器互相通信。 該框架最重要的類是抽象類 Uniform 及其具體的子類 Restlet,該類的子類是專用類,比如 Application、Filter、Finder、Router 和 Route。 這些子類能夠一起處理驗(yàn)證、過濾、安全、數(shù)據(jù)轉(zhuǎn)換以及將傳入請(qǐng)求路由到相應(yīng)資源等操作。 Resource 類生成客戶端的表示形式。 JSR-311是 Sun Microsystems 的規(guī)范,可以為開發(fā) RESTful Web 服務(wù)定義一組 Java API。 Jersey是對(duì) JSR-311 的參考實(shí)現(xiàn)。 JSR-311 提供一組注釋,相關(guān)類和接口都可以用來將 Java 對(duì)象作為 Web 資源展示。 該規(guī)范假定 HTTP 是底層網(wǎng)絡(luò)協(xié)議。 它使用注釋提供 URI 和相應(yīng)資源類之間的清晰映射,以及 HTTP 方法與 Java 對(duì)象方法之間的映射。 API 支持廣泛的 HTTP 實(shí)體內(nèi)容類型,包括 HTML、XML、JSON、GIF、JPG 等。 它還將提供所需的插件功能,以允許使用標(biāo)準(zhǔn)方法通過應(yīng)用程序添加其他類型。 RESTful的實(shí)現(xiàn):構(gòu)建 RESTful Web 服務(wù)的多層架構(gòu)RESTful Web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序在許多方面都是類似的。 有時(shí)它們提供相同或非常類似的數(shù)據(jù)和函數(shù),盡管客戶端的種類不同。 例如,在線電子商務(wù)分類網(wǎng)站為用戶提供一個(gè)瀏覽器界面,用于搜索、查看和訂購(gòu)產(chǎn)品。 如果還提供 Web 服務(wù)供公司、零售商甚至個(gè)人能夠自動(dòng)訂購(gòu)產(chǎn)品,它將非常有用。 與大部分動(dòng)態(tài) Web 應(yīng)用程序一樣,Web 服務(wù)可以從多層架構(gòu)的關(guān)注點(diǎn)分離中受益。 業(yè)務(wù)邏輯和數(shù)據(jù)可以由自動(dòng)客戶端和 GUI 客戶端共享。 惟一的不同點(diǎn)在于客戶端的本質(zhì)和中間層的表示層。 此外,從數(shù)據(jù)訪問中分離業(yè)務(wù)邏輯可實(shí)現(xiàn)數(shù)據(jù)庫(kù)獨(dú)立性,并為各種類型的數(shù)據(jù)存儲(chǔ)提供插件能力。 圖1 展示了自動(dòng)化客戶端,包括 Java 和各種語(yǔ)言編寫的腳本,這些語(yǔ)言包括 Python、Perl、Ruby、PHP 或命令行工具,比如 curl。 在瀏覽器中運(yùn)行且作為 RESTful Web 服務(wù)消費(fèi)者運(yùn)行的 Ajax、Flash、JavaFX、GWT、博客和 wiki 都屬于此列,因?yàn)樗鼈兌即碛脩粢宰詣?dòng)化樣式運(yùn)行。 自動(dòng)化 Web 服務(wù)客戶端在 Web 層向 Resource Request Handler 發(fā)送 HTTP 響應(yīng)。 客戶端的無狀態(tài)請(qǐng)求在頭部包含方法信息,即 POST、GET、PUT 和 DELETE,這又將映射到 Resource Request Handler 中資源的相應(yīng)操作。 每個(gè)請(qǐng)求都包含所有必需的信息,包括 Resource Request Handler 用來處理請(qǐng)求的憑據(jù)。 從Web 服務(wù)客戶端收到請(qǐng)求之后,Resource Request Handler 從業(yè)務(wù)邏輯層請(qǐng)求服務(wù)。 Resource Request Handler 確定所有概念性的實(shí)體,系統(tǒng)將這些實(shí)體作為資源公開,并為每個(gè)資源分配一個(gè)惟一的 URI。 但是,概念性的實(shí)體在該層是不存在的。 它們存在于業(yè)務(wù)邏輯層。 可以使用 Jersey 或其他框架(比如 Restlet)實(shí)現(xiàn) Resource Request Handler,它應(yīng)該是輕量級(jí)的,將大量職責(zé)工作委托給業(yè)務(wù)層。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。 它們都可以利用大量 Web 技術(shù)和標(biāo)準(zhǔn),比如 HTML、JavaScript、瀏覽器對(duì)象、XML/JSON 和 HTTP。 當(dāng)然也不需要購(gòu)買、安裝或配置任何主要組件來支持 Ajax 前端和 RESTful Web 服務(wù)之間的交互。 RESTful Web 服務(wù)為 Ajax 提供了非常簡(jiǎn)單的 API 來處理服務(wù)器上資源之間的交互。 圖1 中的 Web 瀏覽器客戶端作為 GUI 的前端,使用表示層中的 Browser Request Handler 生成的 HTML 提供顯示功能。 Browser Requester Handler 可以使用 MVC 模型(JSF、Struts 或 Spring 都是 Java 的例子)。 它從瀏覽器接受請(qǐng)求,從業(yè)務(wù)邏輯層請(qǐng)求服務(wù),生成表示并對(duì)瀏覽器做出響應(yīng)。 表示供用戶在瀏覽器中顯示使用。 表示不僅包含內(nèi)容,還包含顯示的屬性,比如 HTML 和 CSS。 業(yè)務(wù)規(guī)則可以集中到業(yè)務(wù)邏輯層,該層充當(dāng)表示層和數(shù)據(jù)訪問層之間的數(shù)據(jù)交換的中間層。 數(shù)據(jù)以域?qū)ο蠡蛑祵?duì)象的形式提供給表示層。 從業(yè)務(wù)邏輯層中解耦 Browser Request Handler 和 Resource Request Handler 有助于促進(jìn)代碼重用,并能實(shí)現(xiàn)靈活和可擴(kuò)展的架構(gòu)。 此外,由于將來可以使用新的 REST 和 MVC 框架,實(shí)現(xiàn)它們變得更加容易,無需重寫業(yè)務(wù)邏輯層。 數(shù)據(jù)訪問層提供與數(shù)據(jù)存儲(chǔ)層的交互,可以使用 DAO 設(shè)計(jì)模式或者對(duì)象-關(guān)系映射解決方案(如 Hibernate、OJB 或 iBATIS)實(shí)現(xiàn)。 作為替代方案,業(yè)務(wù)層和數(shù)據(jù)訪問層中的組件可以實(shí)現(xiàn)為 EJB 組件,并取得 EJB 容器的支持,該容器可以為組件生命周期提供便利,管理持久性、事務(wù)和資源配置。 但是,這需要一個(gè)遵從 Java EE 的應(yīng)用服務(wù)器(比如 JBoss),并且可能無法處理 Tomcat。 該層的作用在于針對(duì)不同的數(shù)據(jù)存儲(chǔ)技術(shù),從業(yè)務(wù)邏輯中分離數(shù)據(jù)訪問代碼。 數(shù)據(jù)訪問層還可以作為連接其他系統(tǒng)的集成點(diǎn),可以成為其他 Web 服務(wù)的客戶端。 數(shù)據(jù)存儲(chǔ)層包括數(shù)據(jù)庫(kù)系統(tǒng)、LDAP 服務(wù)器、文件系統(tǒng)和企業(yè)信息系統(tǒng)(包括遺留系統(tǒng)、事務(wù)處理系統(tǒng)和企業(yè)資源規(guī)劃系統(tǒng))。 使用該架構(gòu),您可以開始看到 RESTful Web 服務(wù)的力量,它可以靈活地成為任何企業(yè)數(shù)據(jù)存儲(chǔ)的統(tǒng)一 API,從而向以用戶為中心的 Web 應(yīng)用程序公開垂直數(shù)據(jù),并自動(dòng)化批量報(bào)告腳本。 什么是REST:結(jié)束語(yǔ)REST 描述了一個(gè)架構(gòu)樣式的互聯(lián)系統(tǒng)(如 Web 應(yīng)用程序)。 REST 約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)簡(jiǎn)單、可擴(kuò)展、有效、安全、可靠的架構(gòu)。 由于它簡(jiǎn)便、輕量級(jí)以及通過 HTTP 直接傳輸數(shù)據(jù)的特性,RESTful Web 服務(wù)成為基于 SOAP 服務(wù)的一個(gè)最有前途的替代方案。 用于 web 服務(wù)和動(dòng)態(tài) Web 應(yīng)用程序的多層架構(gòu)可以實(shí)現(xiàn)可重用性、簡(jiǎn)單性、可擴(kuò)展性和組件可響應(yīng)性的清晰分離。 Ajax 和 RESTful Web 服務(wù)本質(zhì)上是互為補(bǔ)充的。

15個(gè)熱門的Java微服務(wù)框架

Java微服務(wù)框架因其強(qiáng)大的功能和廣泛應(yīng)用而備受開發(fā)者青睞。以下是一些熱門的微服務(wù)框架概述:

1. Spring Boot:作為微服務(wù)開發(fā)的首選框架,2017年超過64%的開發(fā)者選擇它,得益于其一鍵啟動(dòng)和部署的便捷性,簡(jiǎn)化了分布式系統(tǒng)的基礎(chǔ)設(shè)施建設(shè)。

2. Spring Cloud:這一系列框架集合提供了完整的微服務(wù)架構(gòu)技術(shù)生態(tài)鏈,基于HTTP的RETS服務(wù)構(gòu)建服務(wù)體系。

3. Dubbo:阿里巴巴的開源框架,早于Spring Cloud,專為高并發(fā)業(yè)務(wù)設(shè)計(jì),被眾多大型企業(yè)如阿里、京東等采用。

4. Dropwizard:輕量級(jí)框架,擁有簡(jiǎn)單模型和快速啟動(dòng)特性,但缺乏依賴注入,不過現(xiàn)在支持日志記錄等重要功能。

5. Cricket:專注于快速API開發(fā),小巧且易于擴(kuò)展,無需數(shù)據(jù)庫(kù)連接,適合獨(dú)立微服務(wù)構(gòu)建。

6. Play:兼容多種JVM語(yǔ)言,采用現(xiàn)代無狀態(tài)模型,提供異步功能和豐富的網(wǎng)站擴(kuò)展,包括OpenID和文件上傳。

7. Swagger:提供API開發(fā)的簡(jiǎn)單工具,通過OpenAPI規(guī)范實(shí)現(xiàn)接口描述和測(cè)試,支持跨語(yǔ)言API生成。

8. Helidon:輕量級(jí)的Java框架,支持Servlet核心,采用開發(fā)者熟悉的SE和Java程序員熟悉的MP模型。

9. Restlet:集成眾多服務(wù)和庫(kù),支持多種數(shù)據(jù)格式,且允許瀏覽器測(cè)試API,功能強(qiáng)大且不斷更新。

Node.js

10. Telepresence:為遠(yuǎn)程微服務(wù)提供本地代理,便于調(diào)試,支持在本地設(shè)置斷點(diǎn)。

11. Jersey:實(shí)現(xiàn)RESTful web服務(wù)的Java API,依賴注解進(jìn)行配置,常與Spring Boot結(jié)合使用。

12. Squash:解決微服務(wù)調(diào)試難題,允許在Kubernetes集群中設(shè)置斷點(diǎn),提供本地IDE體驗(yàn)。

13. Eclipse MicroProfile:從Java EE簡(jiǎn)化而來,用于快速構(gòu)建微服務(wù),每季度發(fā)布新版本以保持更新。

14. WildFly Thorntail:Red Hat的微服務(wù)版本,通過Maven構(gòu)建和配置,提供Uber-JAR部署的便利。

15. Zipkin:記錄微服務(wù)事件的監(jiān)控工具,支持多語(yǔ)言,廣泛集成于其他框架中。

集成

spring cloud 服務(wù)調(diào)用方式為什么使用http restful 而不是RPC

REST(REpresentationStateTransfer)描述了一個(gè)架構(gòu)樣式的網(wǎng)絡(luò)系統(tǒng),比如web應(yīng)用程序。 它首次出現(xiàn)在2000年RoyFielding的博士論文中,他是HTTP規(guī)范的主要編寫者之一。 REST指的是一組架構(gòu)約束條件和原則。 滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是RESTful。 Web應(yīng)用程序最重要的REST原則是,客戶端和服務(wù)器之間的交互在請(qǐng)求之間是無狀態(tài)的。 從客戶端到服務(wù)器的每個(gè)請(qǐng)求都必須包含理解請(qǐng)求所必需的信息。 如果服務(wù)器在請(qǐng)求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知。 此外,無狀態(tài)請(qǐng)求可以由任何可用服務(wù)器回答,這十分適合云計(jì)算之類的環(huán)境。 客戶端可以緩存數(shù)據(jù)以改進(jìn)性能。 在服務(wù)器端,應(yīng)用程序狀態(tài)和功能可以分為各種資源。 資源是一個(gè)有趣的概念實(shí)體,它向客戶端公開。 資源的例子有:應(yīng)用程序?qū)ο蟆?shù)據(jù)庫(kù)記錄、算法等等。 每個(gè)資源都使用URI(UniversalResourceIdentifier)得到一個(gè)惟一的地址。 所有資源都共享統(tǒng)一的界面,以便在客戶端和服務(wù)器之間傳輸狀態(tài)。 使用的是標(biāo)準(zhǔn)的HTTP方法,比如GET、PUT、POST和DELETE。 Hypermedia是應(yīng)用程序狀態(tài)的引擎,資源表示通過超鏈接互聯(lián)。 另一個(gè)重要的REST原則是分層系統(tǒng),這表示組件無法了解它與之交互的中間層以外的組件。 通過將系統(tǒng)知識(shí)限制在單個(gè)層,可以限制整個(gè)系統(tǒng)的復(fù)雜性,促進(jìn)了底層的獨(dú)立性。 當(dāng)REST架構(gòu)的約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)可以擴(kuò)展到大量客戶端的應(yīng)用程序。 它還降低了客戶端和服務(wù)器之間的交互延遲。 統(tǒng)一界面簡(jiǎn)化了整個(gè)系統(tǒng)架構(gòu),改進(jìn)了子系統(tǒng)之間交互的可見性。 REST簡(jiǎn)化了客戶端和服務(wù)器的實(shí)現(xiàn)。 RESTful的實(shí)現(xiàn):RESTfulWeb服務(wù)與RPC樣式的Web服務(wù)了解了什么是什么是REST,我們?cè)倏纯碦ESTful的實(shí)現(xiàn)。 最近,使用RPC樣式架構(gòu)構(gòu)建的基于SOAP的Web服務(wù)成為實(shí)現(xiàn)SOA最常用的方法。 RPC樣式的Web服務(wù)客戶端將一個(gè)裝滿數(shù)據(jù)的信封(包括方法和參數(shù)信息)通過HTTP發(fā)送到服務(wù)器。 服務(wù)器打開信封并使用傳入?yún)?shù)執(zhí)行指定的方法。 方法的結(jié)果打包到一個(gè)信封并作為響應(yīng)發(fā)回客戶端。 客戶端收到響應(yīng)并打開信封。 每個(gè)對(duì)象都有自己獨(dú)特的方法以及僅公開一個(gè)URI的RPC樣式Web服務(wù),URI表示單個(gè)端點(diǎn)。 它忽略HTTP的大部分特性且僅支持POST方法。 由于輕量級(jí)以及通過HTTP直接傳輸數(shù)據(jù)的特性,Web服務(wù)的RESTful方法已經(jīng)成為最常見的替代方法。 可以使用各種語(yǔ)言(比如Java程序、Perl、Ruby、Python、PHP和Javascript[包括Ajax])實(shí)現(xiàn)客戶端。 RESTfulWeb服務(wù)通常可以通過自動(dòng)客戶端或代表用戶的應(yīng)用程序訪問。 但是,這種服務(wù)的簡(jiǎn)便性讓用戶能夠與之直接交互,使用它們的Web瀏覽器構(gòu)建一個(gè)GETURL并讀取返回的內(nèi)容。 在REST樣式的Web服務(wù)中,每個(gè)資源都有一個(gè)地址。 資源本身都是方法調(diào)用的目標(biāo),方法列表對(duì)所有資源都是一樣的。 這些方法都是標(biāo)準(zhǔn)方法,包括HTTPGET、POST、PUT、DELETE,還可能包括HEADER和OPTIONS。 在RPC樣式的架構(gòu)中,關(guān)注點(diǎn)在于方法,而在REST樣式的架構(gòu)中,關(guān)注點(diǎn)在于資源--將使用標(biāo)準(zhǔn)方法檢索并操作信息片段(使用表示的形式)。 資源表示形式在表示形式中使用超鏈接互聯(lián)。 LeonardRichardson和SamRuby在他們的著作RESTfulWebServices中引入了術(shù)語(yǔ)REST-RPC混合架構(gòu)。 REST-RPC混合Web服務(wù)不使用信封包裝方法、參數(shù)和數(shù)據(jù),而是直接通過HTTP傳輸數(shù)據(jù),這與REST樣式的Web服務(wù)是類似的。 但是它不使用標(biāo)準(zhǔn)的HTTP方法操作資源。 它在HTTP請(qǐng)求的URI部分存儲(chǔ)方法信息。 好幾個(gè)知名的Web服務(wù),比如Yahoo的FlickrAPI和都使用這種混合架構(gòu)。 RESTful的實(shí)現(xiàn):RESTfulWeb服務(wù)的Java框架有兩個(gè)Java框架可以幫助構(gòu)建RESTfulWeb服務(wù)。 eromeLouvel和DavePawson開發(fā)的Restlet(見參考資料)是輕量級(jí)的。 它實(shí)現(xiàn)針對(duì)各種RESTful系統(tǒng)的資源、表示、連接器和媒體類型之類的概念,包括Web服務(wù)。 在Restlet框架中,客戶端和服務(wù)器都是組件。 組件通過連接器互相通信。 該框架最重要的類是抽象類Uniform及其具體的子類Restlet,該類的子類是專用類,比如Application、Filter、Finder、Router和Route。 這些子類能夠一起處理驗(yàn)證、過濾、安全、數(shù)據(jù)轉(zhuǎn)換以及將傳入請(qǐng)求路由到相應(yīng)資源等操作。 Resource類生成客戶端的表示形式。 JSR-311是SunMicrosystems的規(guī)范,可以為開發(fā)RESTfulWeb服務(wù)定義一組JavaAPI。 Jersey是對(duì)JSR-311的參考實(shí)現(xiàn)。 JSR-311提供一組注釋,相關(guān)類和接口都可以用來將Java對(duì)象作為Web資源展示。 該規(guī)范假定HTTP是底層網(wǎng)絡(luò)協(xié)議。 它使用注釋提供URI和相應(yīng)資源類之間的清晰映射,以及HTTP方法與Java對(duì)象方法之間的映射。 API支持廣泛的HTTP實(shí)體內(nèi)容類型,包括HTML、XML、JSON、GIF、JPG等。 它還將提供所需的插件功能,以允許使用標(biāo)準(zhǔn)方法通過應(yīng)用程序添加其他類型。 RESTful的實(shí)現(xiàn):構(gòu)建RESTfulWeb服務(wù)的多層架構(gòu)RESTfulWeb服務(wù)和動(dòng)態(tài)Web應(yīng)用程序在許多方面都是類似的。 有時(shí)它們提供相同或非常類似的數(shù)據(jù)和函數(shù),盡管客戶端的種類不同。 例如,在線電子商務(wù)分類網(wǎng)站為用戶提供一個(gè)瀏覽器界面,用于搜索、查看和訂購(gòu)產(chǎn)品。 如果還提供Web服務(wù)供公司、零售商甚至個(gè)人能夠自動(dòng)訂購(gòu)產(chǎn)品,它將非常有用。 與大部分動(dòng)態(tài)Web應(yīng)用程序一樣,Web服務(wù)可以從多層架構(gòu)的關(guān)注點(diǎn)分離中受益。 業(yè)務(wù)邏輯和數(shù)據(jù)可以由自動(dòng)客戶端和GUI客戶端共享。 惟一的不同點(diǎn)在于客戶端的本質(zhì)和中間層的表示層。 此外,從數(shù)據(jù)訪問中分離業(yè)務(wù)邏輯可實(shí)現(xiàn)數(shù)據(jù)庫(kù)獨(dú)立性,并為各種類型的數(shù)據(jù)存儲(chǔ)提供插件能力。 圖1展示了自動(dòng)化客戶端,包括Java和各種語(yǔ)言編寫的腳本,這些語(yǔ)言包括Python、Perl、Ruby、PHP或命令行工具,比如curl。 在瀏覽器中運(yùn)行且作為RESTfulWeb服務(wù)消費(fèi)者運(yùn)行的Ajax、Flash、JavaFX、GWT、博客和wiki都屬于此列,因?yàn)樗鼈兌即碛脩粢宰詣?dòng)化樣式運(yùn)行。 自動(dòng)化Web服務(wù)客戶端在Web層向ResourceRequestHandler發(fā)送HTTP響應(yīng)。 客戶端的無狀態(tài)請(qǐng)求在頭部包含方法信息,即POST、GET、PUT和DELETE,這又將映射到ResourceRequestHandler中資源的相應(yīng)操作。 每個(gè)請(qǐng)求都包含所有必需的信息,包括ResourceRequestHandler用來處理請(qǐng)求的憑據(jù)。 從Web服務(wù)客戶端收到請(qǐng)求之后,ResourceRequestHandler從業(yè)務(wù)邏輯層請(qǐng)求服務(wù)。 ResourceRequestHandler確定所有概念性的實(shí)體,系統(tǒng)將這些實(shí)體作為資源公開,并為每個(gè)資源分配一個(gè)惟一的URI。 但是,概念性的實(shí)體在該層是不存在的。 它們存在于業(yè)務(wù)邏輯層。 可以使用Jersey或其他框架(比如Restlet)實(shí)現(xiàn)ResourceRequestHandler,它應(yīng)該是輕量級(jí)的,將大量職責(zé)工作委托給業(yè)務(wù)層。 Ajax和RESTfulWeb服務(wù)本質(zhì)上是互為補(bǔ)充的。 它們都可以利用大量Web技術(shù)和標(biāo)準(zhǔn),比如HTML、JavaScript、瀏覽器對(duì)象、XML/JSON和HTTP。 當(dāng)然也不需要購(gòu)買、安裝或配置任何主要組件來支持Ajax前端和RESTfulWeb服務(wù)之間的交互。 RESTfulWeb服務(wù)為Ajax提供了非常簡(jiǎn)單的API來處理服務(wù)器上資源之間的交互。 圖1中的Web瀏覽器客戶端作為GUI的前端,使用表示層中的BrowserrequestHandler生成的HTML提供顯示功能。 BrowserRequesterHandler可以使用MVC模型(JSF、Struts或Spring都是Java的例子)。 它從瀏覽器接受請(qǐng)求,從業(yè)務(wù)邏輯層請(qǐng)求服務(wù),生成表示并對(duì)瀏覽器做出響應(yīng)。 表示供用戶在瀏覽器中顯示使用。 表示不僅包含內(nèi)容,還包含顯示的屬性,比如HTML和CSS。 業(yè)務(wù)規(guī)則可以集中到業(yè)務(wù)邏輯層,該層充當(dāng)表示層和數(shù)據(jù)訪問層之間的數(shù)據(jù)交換的中間層。 數(shù)據(jù)以域?qū)ο蠡蛑祵?duì)象的形式提供給表示層。 從業(yè)務(wù)邏輯層中解耦BrowserRequestHandler和ResourceRequestHandler有助于促進(jìn)代碼重用,并能實(shí)現(xiàn)靈活和可擴(kuò)展的架構(gòu)。 此外,由于將來可以使用新的REST和MVC框架,實(shí)現(xiàn)它們變得更加容易,無需重寫業(yè)務(wù)邏輯層。 數(shù)據(jù)訪問層提供與數(shù)據(jù)存儲(chǔ)層的交互,可以使用DAO設(shè)計(jì)模式或者對(duì)象-關(guān)系映射解決方案(如Hibernate、OJB或iBATIS)實(shí)現(xiàn)。 作為替代方案,業(yè)務(wù)層和數(shù)據(jù)訪問層中的組件可以實(shí)現(xiàn)為EJB組件,并取得EJB容器的支持,該容器可以為組件生命周期提供便利,管理持久性、事務(wù)和資源配置。 但是,這需要一個(gè)遵從JavaEE的應(yīng)用服務(wù)器(比如JBoss),并且可能無法處理Tomcat。 該層的作用在于針對(duì)不同的數(shù)據(jù)存儲(chǔ)技術(shù),從業(yè)務(wù)邏輯中分離數(shù)據(jù)訪問代碼。 數(shù)據(jù)訪問層還可以作為連接其他系統(tǒng)的集成點(diǎn),可以成為其他Web服務(wù)的客戶端。 數(shù)據(jù)存儲(chǔ)層包括數(shù)據(jù)庫(kù)系統(tǒng)、LDAP服務(wù)器、文件系統(tǒng)和企業(yè)信息系統(tǒng)(包括遺留系統(tǒng)、事務(wù)處理系統(tǒng)和企業(yè)資源規(guī)劃系統(tǒng))。 使用該架構(gòu),您可以開始看到RESTfulWeb服務(wù)的力量,它可以靈活地成為任何企業(yè)數(shù)據(jù)存儲(chǔ)的統(tǒng)一API,從而向以用戶為中心的Web應(yīng)用程序公開垂直數(shù)據(jù),并自動(dòng)化批量報(bào)告腳本。 什么是REST:結(jié)束語(yǔ)REST描述了一個(gè)架構(gòu)樣式的互聯(lián)系統(tǒng)(如Web應(yīng)用程序)。 REST約束條件作為一個(gè)整體應(yīng)用時(shí),將生成一個(gè)簡(jiǎn)單、可擴(kuò)展、有效、安全、可靠的架構(gòu)。 由于它簡(jiǎn)便、輕量級(jí)以及通過HTTP直接傳輸數(shù)據(jù)的特性,RESTfulWeb服務(wù)成為基于SOAP服務(wù)的一個(gè)最有前途的替代方案。 用于web服務(wù)和動(dòng)態(tài)Web應(yīng)用程序的多層架構(gòu)可以實(shí)現(xiàn)可重用性、簡(jiǎn)單性、可擴(kuò)展性和組件可響應(yīng)性的清晰分離。 Ajax和RESTfulWeb服務(wù)本質(zhì)上是互為補(bǔ)充的。



相關(guān)標(biāo)簽: restlessRestletAPINode.jsJavaScript開發(fā)人員打造集成RESTful

上一篇:安卓游戲開發(fā)新手的終極指南安卓游戲開發(fā)源

下一篇:理解Restlet中的資源模型管理數(shù)據(jù)和業(yè)務(wù)邏

內(nèi)容聲明:

1、本站收錄的內(nèi)容來源于大數(shù)據(jù)收集,版權(quán)歸原網(wǎng)站所有!
2、本站收錄的內(nèi)容若侵害到您的利益,請(qǐng)聯(lián)系我們進(jìn)行刪除處理!
3、本站不接受違法信息,如您發(fā)現(xiàn)違法內(nèi)容,請(qǐng)聯(lián)系我們進(jìn)行舉報(bào)處理!
4、本文地址:http://www.lmxpnzry.com/article/28fbacc868d774d54a89.html,復(fù)制請(qǐng)保留版權(quán)鏈接!


溫馨小提示:在您的網(wǎng)站做上本站友情鏈接,訪問一次即可自動(dòng)收錄并自動(dòng)排在本站第一位!
隨機(jī)文章
單擊下載按鈕,下載所選文件。(單擊指的是什么)

單擊下載按鈕,下載所選文件。(單擊指的是什么)

單擊下載按鈕是指單擊頁(yè)面上一個(gè)可點(diǎn)擊的元素,該元素觸發(fā)文件下載操作,當(dāng)用戶單擊此按鈕時(shí),瀏覽器將向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器將響應(yīng)文件下載,該文件通常以ZIP、PDF或其他常見格式提供,如何創(chuàng)建下載按鈕要?jiǎng)?chuàng)建下載按鈕,您可以使用以下HTML代碼,<,buttontype=buttononclick=downloadFile,>,...。

互聯(lián)網(wǎng)資訊 2024-09-28 01:39:52

NoSQL 革命:探索 NoSQL 數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用程序中的變革性作用

NoSQL 革命:探索 NoSQL 數(shù)據(jù)庫(kù)在現(xiàn)代應(yīng)用程序中的變革性作用

引言NoSQL數(shù)據(jù)庫(kù)在近十年來已成為技術(shù)行業(yè)的一股主要力量,這些非關(guān)系型數(shù)據(jù)庫(kù)提供了一組獨(dú)特的功能和優(yōu)勢(shì),使應(yīng)用程序開發(fā)人員能夠高效地應(yīng)對(duì)現(xiàn)代應(yīng)用程序不斷增長(zhǎng)的需求,在本文中,我們將探討NoSQL數(shù)據(jù)庫(kù)的革命性作用,并重點(diǎn)介紹它們?cè)诟鞣N行業(yè)中帶來的變革性影響,NoSQL數(shù)據(jù)庫(kù)的興起傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),如MySQL和Oracle,已成為...。

本站公告 2024-09-26 16:40:08

創(chuàng)建交互式元素(創(chuàng)建交互式元素的方法)

創(chuàng)建交互式元素(創(chuàng)建交互式元素的方法)

使用HTML創(chuàng)建交互式元素表單元素,input、textarea、select,按鈕,button、submit,鏈接,a,其他元素,如div、span,可以使用CSS屬性來添加交互性使用JavaScript創(chuàng)建交互式元素事件處理程序,如onclick、onkeydown,DOM,文檔對(duì)象模型,方法和屬性AJAX,異步JavaScri...。

互聯(lián)網(wǎng)資訊 2024-09-24 23:26:04

Discuz X 阿里云 OSS 附件(discuz應(yīng)用中心)

Discuz X 阿里云 OSS 附件(discuz應(yīng)用中心)

這是一款DiscuzX的插件,可以將附件存儲(chǔ)到阿里云OSS,功能支持阿里云OSS附件存儲(chǔ)支持附件上傳、刪除、下載支持附件縮略圖生成支持自定義附件存儲(chǔ)路徑支持多附件同時(shí)上傳支持附件分片上傳支持附件斷點(diǎn)續(xù)傳安裝下載插件解壓插件將解壓后的文件上傳到論壇根目錄進(jìn)入論壇后臺(tái),點(diǎn)擊插件管理,找到阿里云OSS附件插件,點(diǎn)擊安裝配置插件參數(shù)配置進(jìn)入論...。

互聯(lián)網(wǎng)資訊 2024-09-23 21:07:27

數(shù)據(jù)庫(kù)應(yīng)用開發(fā):敲開數(shù)據(jù)管理寶庫(kù)的大 (數(shù)據(jù)庫(kù)應(yīng)用開發(fā))

數(shù)據(jù)庫(kù)應(yīng)用開發(fā):敲開數(shù)據(jù)管理寶庫(kù)的大 (數(shù)據(jù)庫(kù)應(yīng)用開發(fā))

應(yīng)用程序的經(jīng)驗(yàn)良好的溝通和團(tuán)隊(duì)合作能力通過認(rèn)證計(jì)劃、在線課程和動(dòng)手經(jīng)驗(yàn),可以獲得這些技能和資格,結(jié)論數(shù)據(jù)庫(kù)應(yīng)用開發(fā)對(duì)于數(shù)據(jù)管理和分析至關(guān)重要,為組織提供了獲得洞察力和做出明智決策的能力,了解數(shù)據(jù)庫(kù)應(yīng)用開發(fā)的基礎(chǔ)知識(shí)、好處和工具對(duì)于開發(fā)人員和組織來說至關(guān)重要,以最大限度地利用其數(shù)據(jù)資產(chǎn),...。

本站公告 2024-09-13 07:01:57

利用在線源代碼平臺(tái)推動(dòng)您的項(xiàng)目 (利用在線源代碼的軟件)

利用在線源代碼平臺(tái)推動(dòng)您的項(xiàng)目 (利用在線源代碼的軟件)

在線源代碼平臺(tái)已成為軟件開發(fā)領(lǐng)域不可或缺的一部分,它們?yōu)檐浖こ處熖峁┝艘粋€(gè)共享、協(xié)作和維護(hù)項(xiàng)目代碼的中心化平臺(tái),通過利用在線源代碼平臺(tái),您可以獲得許多好處,例如...。

最新資訊 2024-09-12 10:15:52

round函數(shù)入門:逐步指南,掌握數(shù)字舍入的奧秘 (round函數(shù)怎么使用)

round函數(shù)入門:逐步指南,掌握數(shù)字舍入的奧秘 (round函數(shù)怎么使用)

一、引言在編程中,我們經(jīng)常需要對(duì)數(shù)字進(jìn)行舍入操作,以獲得更精簡(jiǎn)或更易于處理的數(shù)據(jù),JavaScript中的round,函數(shù)便為此提供了簡(jiǎn)單實(shí)用的方法,二、round函數(shù)的語(yǔ)法round,number,number,要舍入的數(shù)字三、round函數(shù)的工作原理round,函數(shù)的工作原理很簡(jiǎn)單,它將給定的數(shù)字舍入到最接近的整數(shù),如果小數(shù)部...。

最新資訊 2024-09-11 08:45:27

大數(shù)據(jù)數(shù)據(jù)庫(kù):管理和分析海量數(shù)據(jù) (大數(shù)據(jù)數(shù)據(jù)庫(kù)是什么)

大數(shù)據(jù)數(shù)據(jù)庫(kù):管理和分析海量數(shù)據(jù) (大數(shù)據(jù)數(shù)據(jù)庫(kù)是什么)

什么是大數(shù)據(jù)數(shù)據(jù)庫(kù),大數(shù)據(jù)數(shù)據(jù)庫(kù)是專門為存儲(chǔ)和管理海量數(shù)據(jù)而設(shè)計(jì)的數(shù)據(jù)庫(kù)管理系統(tǒng),DBMS,這些數(shù)據(jù)庫(kù)通常處理超出傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)處理能力的數(shù)據(jù)量、速度和多樣性,大數(shù)據(jù)數(shù)據(jù)庫(kù)通常具有以下特點(diǎn),可擴(kuò)展性,能夠處理從數(shù)十億到數(shù)萬億條記錄的數(shù)據(jù)量高性能,能夠快速處理和查詢海量數(shù)據(jù)靈活性,能夠處理不同格式和結(jié)構(gòu)的數(shù)據(jù),包括非結(jié)構(gòu)化數(shù)據(jù)可...。

互聯(lián)網(wǎng)資訊 2024-09-10 02:42:12

JavaScript 刷新當(dāng)前頁(yè)面的藝術(shù):優(yōu)雅的重新加載,流暢的用戶體驗(yàn) (javascipt)

JavaScript 刷新當(dāng)前頁(yè)面的藝術(shù):優(yōu)雅的重新加載,流暢的用戶體驗(yàn) (javascipt)

刷新當(dāng)前頁(yè)面是一個(gè)常見的任務(wù),但它通常會(huì)給用戶帶來不流暢的體驗(yàn),例如閃爍的屏幕或丟失的狀態(tài),本文將介紹使用JavaScript優(yōu)雅地重新加載頁(yè)面并提供流暢用戶體驗(yàn)的技術(shù),何時(shí)需要刷新頁(yè)面以下是一些需要刷新頁(yè)面的常見場(chǎng)景,當(dāng)服務(wù)器端數(shù)據(jù)發(fā)生更改時(shí),例如,添加新評(píng)論或更新文章,當(dāng)用戶執(zhí)行操作時(shí),例如單擊按鈕或提交表單當(dāng)出現(xiàn)錯(cuò)誤或處理程序需...。

互聯(lián)網(wǎng)資訊 2024-09-09 14:01:31

關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì):最佳實(shí)踐和模式優(yōu)化 (關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)包括)

關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì):最佳實(shí)踐和模式優(yōu)化 (關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)包括)

前言關(guān)系數(shù)據(jù)庫(kù)是現(xiàn)代數(shù)據(jù)管理系統(tǒng)中不可或缺的一部分,它們廣泛應(yīng)用于各種行業(yè)和領(lǐng)域,從電子商務(wù)到金融再到醫(yī)療保健,為了設(shè)計(jì)和維護(hù)高效且健壯的關(guān)系數(shù)據(jù)庫(kù),了解最佳實(shí)踐和模式優(yōu)化技術(shù)至關(guān)重要,最佳實(shí)踐堅(jiān)持關(guān)系模型,設(shè)計(jì)應(yīng)該遵循關(guān)系模型的基本原則,包括實(shí)體、關(guān)系和屬性概念,最小化冗余,通過適當(dāng)?shù)臍w一化技術(shù)消除數(shù)據(jù)冗余,以減少數(shù)據(jù)不一致和存儲(chǔ)空...。

技術(shù)教程 2024-09-08 20:33:38

希望通過自學(xué)掌握 Java 的個(gè)人(希望自己能學(xué)有所獲)

希望通過自學(xué)掌握 Java 的個(gè)人(希望自己能學(xué)有所獲)

前言對(duì)于希望通過自學(xué)掌握J(rèn)ava的個(gè)人來說,這是一個(gè)激動(dòng)人心且有益的旅程,Java是一種用途廣泛且功能強(qiáng)大的編程語(yǔ)言,在各種行業(yè)和領(lǐng)域中有著廣泛的應(yīng)用,通過自學(xué)Java,你可以開辟新的職業(yè)道路,提升你的技能,并解鎖個(gè)人和職業(yè)發(fā)展的新機(jī)遇,入門選擇學(xué)習(xí)資源選擇合適的學(xué)習(xí)資源對(duì)于自學(xué)成功至關(guān)重要,以下是推薦的資源,在線課程,Courser...。

最新資訊 2024-09-06 11:52:20

提供收據(jù),以便客戶可以跟蹤他們的購(gòu)買情況。(提供收據(jù)是什么意思)

提供收據(jù),以便客戶可以跟蹤他們的購(gòu)買情況。(提供收據(jù)是什么意思)

提供發(fā)票以便客戶跟蹤他們的購(gòu)買情況引言向客戶提供發(fā)票是企業(yè)提供透明度和增強(qiáng)客戶滿意度的重要方式,發(fā)票是記錄客戶購(gòu)買詳細(xì)清單的重要文件,它允許客戶輕松跟蹤他們的購(gòu)買記錄和支出,發(fā)票的優(yōu)點(diǎn)提供發(fā)票給客戶提供了以下好處,透明度,發(fā)票為客戶提供了有關(guān)其購(gòu)買的清晰且詳細(xì)的信息,包括商品或服務(wù)的描述、數(shù)量、單價(jià)和總金額,這有助于增強(qiáng)信任并確保客戶...。

最新資訊 2024-09-06 08:31:19

666西方大但人文艺术| 亚洲人成网站18禁止无码| 午夜免费福利小电影| 亚洲AV无码一区二区三区蜜桃 | 公么的大龟征服了我BD| 国产精品 视频一区 二区三区 | 人妻少妇精品视频一区二区三区 | 又爽又黄又无遮挡的视频| 91麻豆精品无码一区二区三区| 被绑在机器上强行高潮H| 国产超碰人人做人人爽AV大片 | 色综合色综合久久综合频道88| 午夜无码乱码在线观看| 亚洲熟妇无码久久精品疯| 2021影音先锋AⅤ资源男人网| 成人国产精品一区二区网站免费| 国产精品毛片一区二区| 久久精品AⅤ无码中文字字幕重口 久久精品AⅤ无码中文字字幕蜜桃 | 亚洲欧美偷拍内射白浆| 18禁又污又黄又爽的网站不卡| 波多野结衣AV影音先锋| 国产欧美日韩综合精品一区二区 | 久久久久久久99精品国产片| 欧美性猛交XXXX黑人猛交| 天美传媒MV高清版在线观看| 亚洲日韩欧美一区久久久久我| 97成人碰碰久久人人超级碰OO| 粗壮挺进人妻水蜜桃成熟漫画| 黑人性狂欢在线播放| 男男无码SM调教GV资源| 少妇高潮潮喷到猛进猛出小说| 亚洲国产天堂久久综合网| AV无码免费一区二区三区| 国产精华液一区二区区别 | 亚洲国产成人久久综合三区| 20岁小伙GAYGAYXⅩX| 国产福利精品一区二区| 久久婷婷五月综合成人D啪| 日本一卡二卡三卡四卡2021| 亚洲精品国产一区二区三区在线观| 91人妻人人澡人人爽人人精品| 国产大屁股视频免费区| 老公带朋友来家里C我怎么办| 少妇侧入内射一区二区| 亚洲最大综合久久网成人| 成人片黄网站色大片免费观看AP| 精产国品一二三产区区别| 日本XXXXX九色视频在线观看| 亚洲AV综合色区无码专区桃色| AV无码AV不卡一区二区| 国色天香看片影院| 人妻AV资源先锋影音AV资源| 亚洲AV中文AⅤ无码AV接吻| 啊灬啊灬啊灬快高潮视频| 娇妻系列交换27部多P小| 人与畜禽共性关系的重要性| 亚洲午夜性春猛交77777| 抖音无限次短视频老司机| 久久婷婷五月综合国产| 无码精品人妻一区二区三区中 | 玩弄漂亮少妇高潮大叫| 性欧美老妇人XXⅩ000| 性色AV极品无码专区亚洲AV| 99视频69E精品视频| 精产国品一二三产区9977| 色偷偷人人澡人人爽人人模| 伊人色综合久久天天人守人婷| 国产高清在线精品一本大道| 女人高潮抽搐30分钟| 亚洲高清AⅤ日本欧美视频| 丁香花在线视频观看免费| 麻豆产精国品一二三产区区| 亚洲AV无码精品色午夜蛋壳| 成人无码区免费A∨电影| 米奇7777狠狠狠狠视频影院| 亚洲AV无码成人网站在线观看| 成 人 综合 亚洲另类| 老熟妇一区二区三区啪啪| 亚洲AV色欲色欲WWW| 大白屁股白浆XXⅩSS| 年轻漂亮的人妻被公侵犯BD免费版 | 中文乱码人妻系列一区二区 | 精东天美麻豆果冻传媒MV| 少妇被又粗又硬猛烈进出小说| 99RE热这里只有精品视频| 久久99精品久久久久久HB| 无套内谢的新婚少妇国语播放| 被带到满是X玩具的房间挑调游戏 被村长狂躁俩小时玉婷视频 | 粉嫩呦福利视频导航大全| 欧美丰满熟妇XXXX性大屁股| 一本大道东京热无码| 国精产品W灬源码1688伊在| 熟妇人妻少妇精品欧美视频 | 噜噜久久噜噜久久鬼88| 亚洲精品无码av中文字幕电影网站| 国产疯狂XXXⅩ乱大交| 日本久久夜夜一本婷婷| 99久久国产热无码精品免费| 久久人人妻人人妻人人澡av| 亚洲精品乱码日本按摩久久久久| 国产精品自在拍首页视频| 色哟哟免费精品网站入口| 扒掉内裤露出打嫩嫩的屁股| 妞干网在线视频免费观看 | 2021国产手机在线精品| 久久综合狠狠综合久久| 亚洲乱码av一区二区三区| 黑人大荫蒂老太大| 午夜无码一区二区三区在线| 国产成人AV无码精品天堂| 人妻内射.PORN| YSL小金管水蜜桃色| 欧美成人国产精品视频蜜芽| 在线播放国产一区二区三区| 久久久久人妻一区精品色| 亚洲人妻AV伦理| 精品系列无码一区二区三区| 亚洲国产AV一区二区三区丶| 狠狠色噜噜狠狠狠狠7777米奇| 亚欧色一区W666天堂| 国产无遮挡又黄又大又爽| 香港三级日本三级A视频| 国产乱人伦偷精品视频色欲| 无码精品人妻一区二区三区老牛| 国产精品白丝JK白祙喷水视频| 色欲人妻综合AAAAAAAA网| 公的粗大挺进了我的密道视频| 少妇被粗大的猛烈进出69影院 | 国产AV人人夜夜澡人人爽麻豆| 视频一区二区三区在线观看| 国产 字幕 制服 中文 在线| 天美传媒MV在线播放高清视频 | 日韩人妻无码精品专区综合网| JEALOUSVUE成熟MON| 人妻丰满熟妇AV无码区免| А√天堂8在线官网| 人人爽人人片人人片AV| 厨房掀开馊了裙子挺进电影| 色翁荡息又大又硬又粗又爽| 国产AⅤ爽AV久久久久成人精品| 舌头伸进去添的我好爽高潮电影| 国产寡妇XXXX猛交| 亚洲AV狠狠爱一区二区三区| 禁止18点击进入在线观看尤物| 亚洲五月丁香综合视频| 局长趴在雪白的身上耸动| 自拍偷自拍亚洲精品被多人伦好爽| 女朋友特别闷骚很吸引别人| 凹凸视频免费在线| 视频二区 爆乳 丰满 熟女| 国产无遮挡又黄又爽不要VIP软| 亚洲丰满少妇多毛大隂户 | 动漫人物插画动漫人物的视频| 婷婷综合缴情亚洲狠狠| 国产真实乱XXXⅩ视频| 亚洲日本VA午夜中文字幕一区| 乱码精品一卡2卡二卡三| jlzzjlzz全部女高潮| 色一情一乱一伦一视频免费看 | 久久月本道色综合久久| 中文精品一卡2卡3卡4卡| 清纯JK校花被啪啪AV免费| 公交车里抓着摇曳的手环诗情 | 亚洲AⅤ天堂AV天堂无码APP| 精产国品一二三产品在哪| 在线天堂资源WWW在线中文| 青青草国产成人A∨| 国产福利精品一区二区| 亚洲高清乱码午夜电影网| 麻豆人人妻人人妻人人片AV| 巴西女人与禽2O2O性论交| 铜铜铜铜铜铜铜好大好深色板 | 精品综合久久久久久98| 1000部夫妻午夜免费| 三上悠亚公侵犯344在线观看| 国产日产欧产美韩系列国| 荫蒂每天被男人添| 欧美日韩精品人妻二区| 国产成人精品A∨一区二区| 亚洲乱码尤物193YW最新网站| 年轻的少妇A级伦理| 国产成人精品三级在线影院| 亚洲人成无码网站在线观看野花 | 亚洲一码二码三码区别在哪| 欧美大波少妇在厨房被| 国产精品久久久久9999高清| 亚洲中文无码成人片在线观看| 強暴強姦AV正片一区二| 国产九九久久99精品影院| 幼射HD交中国妇| 他趴在两腿中间舔我私密有事| 精品一区二区三区免费乱码视频| BRAZZERSHD欧美巨大| 西方137大但人文艺术| 免费一本色道久久一区| 国产成人精品自在钱拍| 用各种刑具调教吹潮的视频| 僧侣と交わる色欲の夜に| 久久久久精品一区中文字幕| 厨房里我扒了岳的内裤|