微服務架構10條最佳實踐

微服務架構10條最佳實踐

最佳實踐1 -- 嘗試達到真正的REST

在乎識到REST API的好處以後,咱們能夠查看上圖的Leonard Richardson's 的成熟度模型,對於REST的使用有四個級別的定義。api

  • 級別0:使用一個端點來訪問軟件資源
  • 級別1:使用相同的http方法來訪問不一樣的資源
  • 級別2:使用不用的http方法(例如 GET POST PUT DELETE)來訪問不一樣的資源
  • 級別3:API響應中擁有導航資源,這是真正的REST。

最佳實踐2 -- 使用Spring HATEOAS

這個能夠幫助你使用可導航的RESTful api接口。架構


最佳實踐3 -- 使用分佈式配置

經過這種方式,你不能一次性配置50不一樣的配置。Consul能夠用來保持鍵/值的配置。負載均衡


最佳實踐4 -- 客戶代碼生成

Hüseyin 建議「要麼使用Swagger來生成任何支持的語言的客戶端代碼,要麼經過註解來使用Feign客戶端,以及使用Ribbon進行客戶端的負載均衡」。分佈式


最佳實踐5 -- 持續交付

Hüseyin 使用Docker和Jenkins進行了持續交付的示例演示。微服務


最佳實踐6 -- 監控

事實上,監控無處不在。性能


最佳實踐7 -- 日誌

Hüseyin 指出大量的Docker 日誌驅動。他經過使用GELF(Graylog Extended Log Format)來進行示例演示.日誌


最佳實踐8 -- APM

應用性能管理。APM經過蒐集額外的詳細信息來幫助你解決問題。Hüseyin 表示Zipkin是一個開源產品中的一個可選方案。orm


最佳實踐9 -- 數據聚合到特定的客戶端的API網關


最佳實踐10 -- 事件訂閱和CQRS(命令和查詢響應分離)

一個命令能夠改變一個對象的狀態,可是不會返回數據。一個查詢會返回數據,可是不會更改對象的狀態。對象

相關文章
相關標籤/搜索