SOA 、MSA與CNA比較
SOA肯定是會向後兩者轉變,但是MSA是不是一定轉向CNA,還是可能直接轉向Serverless並沒有定論,該文雖然預設CNA比MSA高階,但是作者不是上帝,我們看看該文的閃光點:
端點和管道
在從SOA轉向MSA過程中,服務之間通訊方式轉變為“智慧端點和啞管道” ,微服務端點是智慧的,通訊管道應該是簡單非智慧的,微服務之間通訊不依賴於集中式智慧路由層,而是依賴於擁有某些平臺級功能的智慧端點,比如spring cloud提供的Zuul動態路由和嵌入各個服務的Ribbon負載平衡以及Hystrix斷路器,這些負責網路通訊的功能被分配到各個微服務的編碼和配置中。
在進入CNA的後Kubernetes時代,智慧端點和啞管道再次被顛覆,啞管道已經完全被服務網格技術所取代。而且,服務網格甚至比傳統的ESB更智慧。網格可以執行動態路由,服務發現,基於延遲的負載平衡,響應型別,指標和分散式跟蹤,重試,超時。
ESB只有一個集中路由層,而服務網格每個微服務通常都有自己的路由器: 邊車代理。更重要的是,這個新管道(平臺和服務網格)不像ESB,它並沒有任何業務邏輯; 他們完全專注於基礎架構問題,使服務專注於業務邏輯。
Kubernetes平臺(包含所有其他技術)還負責資源管理,排程,部署,配置管理,擴充套件,服務互動等。因此,其實已經變成智慧端點代理和智慧管道。
對微服務的強制要求
由於服務網路可以檢測故障,會不斷重啟你的微服務,也就是你的微服務可能會不斷被重啟。這就對微服務功能有強制要求,必須冪等。
為了適合雲原生環境中的自動化,服務必須是:
冪等重啟(服務可以被殺死並多次啟動)。
冪等擴充套件/縮小(服務可以自動擴充套件到多個例項)。
冪等服務生產者(其他服務可能會重試被呼叫)。
冪等服務使用者(服務網格可以重重試呼叫)。
如果你的服務執行上述操作一次或多次時服務的行為始終相同,那麼平臺將能夠在沒有人為干預的情況下從故障中恢復你的服務。
分散式系統中的應用程式安全性和正確性也就是事務機制仍然是應用程式自己的責任。
[該貼被banq於2018-09-30 15:12修改過]
相關文章
- ==與equals比較
- Vuex與Redux比較VueRedux
- Hibernate與mybatis比較MyBatis
- yarn 與 npm 比較YarnNPM
- Vue與React比較VueReact
- RecyclerView與ListView比較View
- React與Vue模板使用比較(一、vue模板與React JSX比較)ReactVueJS
- Goland與vscode比較 - redditGoLandVSCode
- Python與Excel VBA比較PythonExcel
- Flutter與Swift比較 - evroneFlutterSwiftVR
- volatile與Atomic的比較
- Kanban與Scrum比較 - modernanalystScrumNaN
- Flutter 與 iOS 功能比較FlutteriOS
- Spring Boot與Micronaut比較Spring Boot
- DDD中事件與命令比較事件
- OpenShift與Docker全方位比較Docker
- XTask與RxJava的使用比較RxJava
- Flutter與React Native的比較FlutterReact Native
- PostgreSQL與MySQL的比較 - hackrMySql
- Rust, Go與Hasekll比較 - RedditRustGo
- Apache Sqoop與Apache Flume比較ApacheOOP
- initialize方法與load方法比較
- Spring Boot與Eclipse MicroProfile比較Spring BootEclipse
- JavaScript與WebAssembly進行比較JavaScriptWeb
- MVVM與MVC模式的比較MVVMMVC模式
- Go 與 C++ 的對比和比較GoC++
- js 深比較和淺比較JS
- Java JIT與AOT效能比較 - foojayJava
- 微服務中GraphQL與RESTful比較微服務REST
- Querydsl與JPA標準的比較
- Go與C#的比較 - RedditGoC#
- 雲原生Java與Golang比較 -lgorJavaGolang
- OSI模型 與 DOD模型的比較模型
- ETL介紹與ETL工具比較
- Docker 與 Podman 容器管理的比較Docker
- TomEE、Spring Boot與Quarkus比較 - BaptistaSpring BootAPT
- SOA與服務化框架框架
- 幾種分散式呼叫鏈監控元件的實踐與比較(二)比較分散式元件