分布式和微服务的区别
分布式和微服務的區別
1.顏老師,分布式和微服務有什么區別呢?網上說啥的都有,越看越暈了。
答:分布式的核心就一個字:拆。只要是將一個項目拆分成了多個模塊,并將這些模塊分開部署,那就算是分布式。
如何拆呢?有兩種方式:水平拆分,或垂直拆分(也稱為“橫向拆分”和“垂直拆分”),具體如下:
水平拆分:根據“分層”的思想進行拆分。例如,可以將一個項目根據“三層架構”拆分成 表示層(jsp+servlet)、業務邏輯層(service)和數據訪問層(dao),然后再分開部署:把表示層部署在服務器A上,把service和dao層部署在服務器B上,然后服務器A和服務器B之間通過dubbo等RPC進行進行整合(在左下角的“閱讀原文”里有dubbo的視頻課程,可以點擊學習),如圖所示。
**垂直拆分:**根據業務進行拆分。例如,可以根據業務邏輯,將“電商項目”拆分成“訂單項目”、“用戶項目”和“秒殺項目”。顯然這三個拆分后的項目,仍然可以作為獨立的項目使用。像這種拆分的方法,就成為垂直拆分。
什么是微服務呢?
從名字就能知道,“微服務”就是非常微小的服務。
微服務可以理解為一種非常細粒度的垂直拆分。例如,以上“訂單項目”本來就是垂直拆分后的子項目,但實際上“訂單項目”還能進一步拆分為“購物項目”、“結算項目”和“售后項目”,如圖。
現在看圖中的“訂單項目”,它完全可以作為一個分布式項目的組成元素,但就不適合作為微服務的組成元素了(因為它還能再拆,而微服務應該是不能再拆的“微小”服務,類似于“原子性”)。
總結:
分布式:拆了就行。
微服務:細粒度的垂直拆分。
總結
以上是生活随笔為你收集整理的分布式和微服务的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源python-打包发布
- 下一篇: 以消费者为中心 第四范式为企业转型准备“