SOA RESTful軟體架構

2021-07-03 20:13:36 字數 1152 閱讀 5375

你有沒有遇到過,同乙個資料庫的資料,每次做乙個產品都要重新實現一遍同樣的功能,每乙個產品都要單獨寫一相同的功能模組(比如登入,獲取產品列表等),很多以前寫的功能模組到現在都不能復用了,工作幾年下來,公司裡沒有沉澱出可以復用的東西……

如果你遇到過相似的情況,也許你應該關注一下

soa(service-oriented architecture

)—— 

面向服務的體系結構,這不是一中具體的技術,只是乙個設計思想,他的主要思想就是把服務從專案中分離出來,做成介面的形式供其他專案呼叫,這樣的好處很明顯,第

一、只要約定好介面形式,任何語言都可以相互呼叫;第

二、最大化的復用功能模組;第

三、可以橫向和縱向擴充套件,等等。這時大家可能想起來web service來了,它主要機遇基於soap通過http協議進行呼叫,這種形式有很多弊病,比如開發麻煩,要生成乙個非常大的wsdl檔案,生成的資料格式很複雜,有沒有一種既簡單又安全的方式呢,當然有了,那就是restful(representational state transfer)描述了乙個架構樣式的網路系統,很多公司的api都是通過該形式開發,比如微博api,qq開放平台,**開發平台等等,那它有什麼好處呢,首先它基於http協議,通過即 post、get、head、put 、delete、options、trace等請求方式處理資源,然後返回通用資料格式,例如xml/json等,這樣不管是b/s,c/s架構都能很好的支援。下面講解一下restful架構設計。

首先架構圖如下:

可能遇到的問題:

1、安全性

當請求端傳送請求的時候,服務端要驗證合法性,那該如何驗證呢,大多數方案都是遵循oauth(現在普遍都公升級的到了oauth2.0)。下面是我設計一種

簡單方式,在小應用上可以採用。

2、請求控制

介面不能無限制的呼叫,不然服務會被跑慢,所以需要限制請求,方法很多,可以採用nginx的limit模組,限制使用者的呼叫頻率和最大連線數等。

3、服務擴充套件

首先對於以後服務的公升級,需要對介面進行非常好的設計,避免後續改變url,這裡建議多應用設計模式來進行程式設計,而隨著服務的訪問量不斷增加,需要對服務進行框架公升級,這個可以參考我的《專案成長記》專題文章。

軟體架構 微服務架構

我們可以將微服務架構 microservices architecture 理解為 soa 的公升級。基於以下相同點 當問到微服務架構與soa的區別,我們能找到以下回答 微服務其核心思想是在應用開發領域,使用一系列微小服務來實現單個應用的方式途徑,或者說微服務的目的是有效的拆分應用,實現敏捷開發和部...

軟體架構 事件驅動架構

事件 event 就是狀態的顯著變化,比如說前面提到的客戶下單被執行。從 來分,事件可以分為系統內部事件和外部事件。從型別來分,可以分為業務事件和系統事件。事件驅動架構 event driven architecture,eda 乙個事件驅動框架 eda 定義了乙個設計和實現乙個應用系統的方法學,在...

家政軟體架構

家政管理系統 一.人力資源管理 a 輸送單位資訊 b 輸送計畫 c 聯絡日誌 二.員工資料管理 a 新增員工資料 b 員工資料附件 c 員工資料管理 d 請假員工管理 e 流失員工返回 三.員工培訓管理 a 培訓課程管理 b 上崗證發放 四.市場銷售管理 a 每日可選服務員 b 新增潛在客戶資料 c...