您好,登錄后才能下訂單哦!
你有沒有遇到過,同一個數據庫的數據,每次做一個產品都要重新實現一遍同樣的功能,每一個產品都要單獨寫一相同的功能模塊(比如登錄,獲取產品列表等),很多以前寫的功能模塊到現在都不能復用了,工作幾年下來,公司里沒有沉淀出可以復用的東西……
如果你遇到過相似的情況,也許你應該關注一下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架構設計。
首先架構圖如下:
需要為每個程序分配一個appKey和一個appSecret, 然后通過URL訪問服務,最后服務返回數據(JSON / XML格式)。
可能遇到的問題:
1、安全性
當請求端發送請求的時候,服務端要驗證合法性,那該如何驗證呢,大多數方案都是遵循OAuth(現在普遍都升級的到了OAuth3.0)。下面是我設計一種簡單方式,在小應用上可以采用。
2、請求控制
接口不能無限制的調用,不然服務會被跑慢,所以需要限制請求,方法很多,可以采用Nginx的limit模塊,限制用戶的調用頻率和最大連接數等。
3、服務擴展
首先對于以后服務的升級,需要對接口進行非常好的設計,避免后續改變URL,這里建議多應用設計模式來進行程序設計,而隨著服務的訪問量不斷增加,需要對服務進行框架升級,這個可以參考我的《項目成長記》專題文章。
SOA架構目前已經很成熟,大家可以多進行研究討論。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。