極客時間-左耳聽風-程序員攻略-微服務

程序員練級攻略:微服務

微服務是分佈式系統中最近比較流行的架構模型,也是 SOA 架構的一個進化。html

Martin Fowler 的這篇關於微服務架構的文檔 - Microservice Architecture中譯版),這篇文章說明了微服務的架構與傳統架構的不一樣之處在於,微服務的每一個服務與其數據庫都是獨立的,能夠無依賴地進行部署。前端

各家對微服務的理解。vue

微服務架構

IBM 紅皮書:Microservices Best Practices for Java ,這本書很是好,不但有經過把 Spring Boot 和 Dropwizard 來架建 Java 的微服務,並且還談到了一些標準的架構模型,如服務註冊、服務發現、API 網關、服務通信、數據處理、應用安全、測試、部署、運維等,是至關不錯的一本書。react

微服務設計。這本書全面介紹了微服務的建模、集成、測試、部署和監控,經過一個虛構的公司講解了如何創建微服務架構。主要內容包括認識微服務在保證系統設計與組織目標統一上的重要性,學會把服務集成到已有系統中,採用遞增手段拆分單塊大型應用,經過持續集成部署微服務,等等。nginx

下面是 Nginx 上的一組微服務架構的系列文章。git

下面這是 Auto0 Blog 上一系列的微服務的介紹,有代碼演示。程序員

Dzone 的 Spring Boot 的教程。github

時髦一些的架構。golang

  • 前端React.jsVue.js
  • 後端Go 語言 + 微服務工具集 Go kit ,由於是微服務了,因此,每一個服務的代碼就簡單了。既然簡單了,也就能夠用任何語言了,因此,我推薦 Go 語言。
  • 通信gRPC,這是 Google 遠程調用的一個框架,它比 Restful 的調用要快 20 倍到 50 倍的樣子。
  • APISwagger ,Swagger 是一種 Restful API 的簡單但強大的表示方式,標準的,語言無關,這種表示方式不但人可讀,並且機器可讀。能夠做爲 Restful API 的交互式文檔,也能夠做爲 Restful API 形式化的接口描述,生成客戶端和服務端的代碼。今天,全部的 API 應該都經過 Swagger 來完成。
  • 網關Envoy 其包含了服務發現、負載均衡和熔斷等這些特性,也是一個頗有潛力的網關。固然,Kubernetes 也是很好的,並且它也是高擴展的,因此,徹底能夠把 Envoy 經過 Ingress 集成進 Kubernetes。這裏有一個開源項目就是幹這個事的 - contour
  • 日誌監控fluentd + ELK
  • 指標監控Prometheus
  • 調用跟蹤Jaeger 或是 Zipkin,固然,後者比較傳統一些,前者比較時髦,最重要的是,其能夠和 Prometheus 和 Envory 集成。
  • 自動化運維Docker + Kubernetes

微服務和 SOA

在對微服務有了必定的認識之後,區分出微服務和 SOA 架構能夠看一下這本電子書 - 《Microservices vs. Service-Oriented Architecture》。這本書含有服務化架構的一些事實,還有基礎的 SOA 和微服務的架構知識,以及兩種架構的不一樣。這本書的做者馬克·理查茲(Mark Richards)同窗擁有十年以上的 SOA 和微服務架構的設計和實現的經驗。web

另外,還有幾篇其它對比 SOA 和微服務的文章。

微服務和其它架構的一些不一樣和比較,瞭解微服務架構的優缺點。下面幾篇文章將幫助得到這些知識。

設計模式和最佳實踐

微服務的一些設計模式。

相關資源

相關文章
相關標籤/搜索