分布式系统的那些事儿(六) - SOA架构体系
有十來天沒發(fā)文了,實在抱歉!最近忙著錄視頻,同時也做了個開源的后臺管理系統(tǒng)LeeCX,目前比較簡單,但是后續(xù)會把各類技術(shù)完善。具體可以點擊“原文鏈接”。
那么今天繼續(xù)說分布式系統(tǒng)的那些事。
我們現(xiàn)在動不動就講分布式吧?那么SOA是不是必須得聊一聊呢?
面向服務(wù)的架構(gòu),簡稱SOA,他是基于服務(wù)組件的,把原來那種一個大型應(yīng)用程序的不同的功能拆分為一些接口,通過這些接口串聯(lián)起來。
這么做的好處是:
1、重用性大大提高
2、明確了接口的服務(wù)定義規(guī)則
3、定義了自家公司的api標(biāo)準(zhǔn)
4、降低系統(tǒng)耦合性
5、無狀態(tài)HTTP
SOA不是技術(shù)也不是什么標(biāo)準(zhǔn),他是一個架構(gòu),每個公司對SOA的架構(gòu)體系都不同,有簡單的也有復(fù)雜的,更有超越榮耀王者那邊的微服務(wù)存在。
曾經(jīng)的SOA,我也參與過,那些接口設(shè)計十分復(fù)雜,用的是SOAP,數(shù)據(jù)傳輸通過xml來封裝的,雖然那個時候我還是個新手,但是我堅信這樣的不人性化的玩意遲早要被替代,如今restful風(fēng)格的架構(gòu)已經(jīng)完全替代之。
現(xiàn)如今不論是SOA還是微服務(wù)。我們都會利用restful風(fēng)格來做,甚至我們還會定義自己的一套標(biāo)準(zhǔn)規(guī)范,強制開發(fā)人員定義的所有api接口必須走這樣的規(guī)范,這么做的好處是可以讓前后端分離,開發(fā)人員可以只專注自己的接口或者對接工作即可。
跟過時的SOAP相比,restful簡直就是簡介明了的實現(xiàn)方案。所有的服務(wù)都是松耦合,可以為第三方提供各式各樣的接口。傳播行為也十分輕量級。
restful的設(shè)計規(guī)范:
1、使用URL來同一表示我們的資源路徑,這個URL應(yīng)該一目了然,讓人知道調(diào)用這個接口地址就能夠做什么事
2、接口的同一定義:
對于增刪改查CRUD就有了十分明確的定義,request的請求方式有4種,
POST用于定義create操作;
GET用于定義查詢操作;
PUT用于定義修改操作;
DELETE用于定義刪除操作;
此外執(zhí)行的那個業(yè)務(wù)方法名(action或者controller),必須定義為名字意義(對于這個我個人覺得沒必要,各自根據(jù)自己公司的業(yè)務(wù)定義即可,官方的規(guī)范很難以執(zhí)行,而且命名會很糾結(jié))
3、無狀態(tài)性:
普通的web應(yīng)用我們都是用的session來管理用戶會話,但是restful的SOA中,我們必須得使用無狀態(tài)會話,sessionless,比如利用redis來實現(xiàn),或者spring-session
4、返回客戶端的狀態(tài):
我們得定義瀏覽器的狀態(tài),就像404或者500那樣,出錯了得有一個狀態(tài)值,最常用的就是200狀態(tài),然后就是501、502、503……這樣定義下去,而這個狀態(tài)需要封裝在你的一個json實體中讓對方獲取后進行解析,不論是ajax或者restful,都可以獲得這樣的json字符串再轉(zhuǎn)換為想要的pojo
?
轉(zhuǎn)載于:https://www.cnblogs.com/leechenxiang/p/7512753.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的分布式系统的那些事儿(六) - SOA架构体系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Quartus ii仿真界面闪退
 - 下一篇: python做社会网络分析_利用GooS