微服務的特色
詹姆士和馬丁提供了一個合理共通的微服務架構特色:
藉由服務元件化
圍繞商業能力組織化
產品非專案
精明的末點和傾倒管道
非中央化的治理
自動化的基礎建設
失敗的設計
演進式設計
上述提及的特色確定值得他們的關心注意.但研究過後撰碼和討論關於微服務多年.我得承認最通常提及的問題
我該如何進化我的獨佔經典資料庫?
這問題惹來一些方式思考企業應用開發者如何更有效率破解他們獨占系統.
主要特色在我們這本書將會探討非中控式資料管理.試著簡化一個簡單的概念.我們將能這樣陳述
每一個微服務都該有自己分開的資料庫
這樣的敘述帶來自身的挑戰.甚至我們想到綠野專案,在哪有很多當我們需要來自其他服務提供資訊的情境.經驗教我們仰賴遠端呼叫通常在資料密集的案例不夠好,包含吞吐量與延遲.
這本是全部談論處理關連式資料庫.第二章摘要開發相關架構.零維護時間呈現於第三章不會排除微服務甚至分散式內容更為重要.因為我們藉由處理不同產物間透過網路分散系統的分散資訊.我們也會討論資訊將會如何收斂.
第四章描述兩種一致性模式:CRUD (新增 讀取 更新 刪除) and CQRS (命令 查詢 回應蛻變)的不同.在最後的章節第五章會談及如何在微服務結點間整合資訊.
那用NoSQL 資料庫如何?
探討微服務及不同資料庫種類和關連式資料庫的不同是自然的.如果每一個微服務必須各有一個自己的資料庫.什麼避免你選擇其他種類或技術?或許某些資料透過鍵值,文件,檔案或git 庫處理會更好.
關於NoSQL 資料庫在處理不同內容或一些符合你企業應用的內容有很多成功的案例即使如此我們依舊建議你用安全方式開始你的微服務旅程.一但你成功完成實施與整合你的第一個微服務,你可以決定是否你或你的專案是否適用其他種資料庫技術.
這微服務旅程如同一些變更是困難的,如果你一次沈浸一個問題你會有更好的機會.去模擬對處理如同微服務和不同資料庫技術引發新未預期的問題是沒有幫助的