假設我們有一個微服務A和一個B.B有它自己的數據庫。但是B必須水平縮放,因此我們最終得到了3個B實例。數據庫會發生什麼?它是否相應地縮放?是否保持3 B實例的相同(集中式)數據庫?它是否成爲分佈式數據庫?會發生什麼?微服務:數據庫和微服務實例
5
A
回答
3
當您使用數據分區時,通過多個服務實例使用一個數據庫是可以的。
0
答案基於哪種數據應該從3個B實例共享。有些場合:
在B只是讀而不寫什麼數據,數據庫可以使用重複方法論,三級乙等的實例就是從不同的數據庫實例讀取數據,DB被複制。
B實例可以在不中斷其他B實例的情況下讀/寫數據,這意味着每個B實例都可以擁有指定的數據,並且實例之間沒有數據共享,數據庫被更改爲具有相同模式但完全不同數據的三個數據庫;
B實例應共享大部分數據,並且每個實例都可以將數據寫回到數據庫。所以B實例應該使用一個DB和一些DB鎖來避免實例之間的衝突。
在其他一些不同的情況,還會有很多其他的方法來解決這個問題,如使用內存數據庫Redis的一樣,排隊服務一樣的RabbitMQ對於B實例。
0
如pattern database per service解釋由Chris理查森,同樣的服務的
實例應該共享同一數據庫B的
相關問題
- 1. 無狀態微服務和數據庫
- 2. 微服務和多個數據庫
- 3. 如何將數據庫與微服務(和新服務)同步?
- 4. SemVer和微服務
- 5. 微服務和ERP
- 6. 微服務每個數據庫表
- 7. 在微服務架構中,微服務將如何服務?
- 8. 微服務 - 安全實施
- 9. JHipster微服務實體
- 10. 微服務在實踐中
- 11. 在微服務
- 12. 亞馬遜網絡服務微型實例 - 服務器崩潰
- 13. 瞭解Docker和微服務
- 14. 微服務通信
- 15. 微服務管理
- 16. 微服務部署
- 17. Jhipster 4.6.2微服務
- 18. 微服務通信
- 19. 測試微服務?
- 20. 微服務認證
- 21. 微軟SMTP服務
- 22. 分享微服務
- 23. graphql的微服務
- 24. 微服務架構
- 25. 微服務設計
- 26. JBOSS的微服務
- 27. Grails 3微服務
- 28. 微軟警報服務和通知服務的最佳實踐
- 29. 微服務:服務發現和服務註冊與阿卡
- 30. 在微服務架構+的NoSql數據庫[微服務體系結構的數據一致性]
3實例仍爲1個邏輯服務。所以你只需要一個數據庫。 –
@TomRedfern感謝您的回答;) 您是否曾經遇到過需要擴展數據庫的情況?如果是這樣,怎麼處理? – nobitta
http://stackoverflow.com/questions/33399988可能的重複 – KGhatak