ⅩXXX18日本老师护士_少妇无码av无码去区钱_国产精品久久-国产精品_久久久亚洲色_电影一区二区三区无码

世界報(bào)道:分布式和微服務(wù)的區(qū)別
來(lái)源:騰訊云     時(shí)間:2023-03-17 14:07:14

1.分布式和微服務(wù)有什么區(qū)別呢?

答:分布式的核心就一個(gè)字:拆。只要是將一個(gè)項(xiàng)目拆分成了多個(gè)模塊,并將這些模塊分開(kāi)部署,那就算是分布式。

如何拆呢?有兩種方式:水平拆分,或垂直拆分(也稱為“橫向拆分”和“垂直拆分”),具體如下:


【資料圖】

水平拆分:根據(jù)“分層”的思想進(jìn)行拆分。例如,可以將一個(gè)項(xiàng)目根據(jù)“三層架構(gòu)”拆分成 表示層(jsp+servlet)、業(yè)務(wù)邏輯層(service)和數(shù)據(jù)訪問(wèn)層(dao),然后再分開(kāi)部署:把表示層部署在服務(wù)器A上,把service和dao層部署在服務(wù)器B上,然后服務(wù)器A和服務(wù)器B之間通過(guò)dubbo等RPC進(jìn)行進(jìn)行整合(在左下角的“閱讀原文”里有dubbo的視頻課程,可以點(diǎn)擊學(xué)習(xí)),如圖所示。

垂直拆分:根據(jù)業(yè)務(wù)進(jìn)行拆分。例如,可以根據(jù)業(yè)務(wù)邏輯,將“電商項(xiàng)目”拆分成“訂單項(xiàng)目”、“用戶項(xiàng)目”和“秒殺項(xiàng)目”。顯然這三個(gè)拆分后的項(xiàng)目,仍然可以作為獨(dú)立的項(xiàng)目使用。像這種拆分的方法,就成為垂直拆分。

什么是微服務(wù)呢?

從名字就能知道,“微服務(wù)”就是非常微小服務(wù)。

微服務(wù)可以理解為一種非常細(xì)粒度的垂直拆分。例如,以上“訂單項(xiàng)目”本來(lái)就是垂直拆分后的子項(xiàng)目,但實(shí)際上“訂單項(xiàng)目”還能進(jìn)一步拆分為“購(gòu)物項(xiàng)目”、“結(jié)算項(xiàng)目”和“售后項(xiàng)目”,如圖。

現(xiàn)在看圖中的“訂單項(xiàng)目”,它完全可以作為一個(gè)分布式項(xiàng)目的組成元素,但就不適合作為微服務(wù)的組成元素了(因?yàn)樗€能再拆,而微服務(wù)應(yīng)該是不能再拆的“微小”服務(wù),類似于“原子性”)。

總結(jié):

分布式:拆了就行。

微服務(wù):細(xì)粒度的垂直拆分。

2.Java中不是有GC嗎,怎么還有內(nèi)存泄漏一說(shuō)?

答:Java內(nèi)存有兩種常見(jiàn)問(wèn)題:內(nèi)存溢出和內(nèi)存泄漏。

內(nèi)存溢出好理解,就是JVM內(nèi)存有限。如果對(duì)象太多,JVM內(nèi)存放不下了,就會(huì)內(nèi)存溢出。

那什么是內(nèi)存泄漏?首先得明確,GC只會(huì)回收那些“不可達(dá)”的對(duì)象(可以簡(jiǎn)單理解為,如果一個(gè)對(duì)象存在著指向它的引用,這個(gè)對(duì)象就“可達(dá)”;如果沒(méi)有引用指向它,則“不可達(dá)”)。

若一個(gè)對(duì)象是“無(wú)用但可達(dá)的”,就會(huì)造成內(nèi)存泄漏。

如下代碼中,obj的值是null,因此是“無(wú)用的”;但同時(shí)obj又同時(shí)被被list引用,因此是“可達(dá)”的,所以此時(shí)的obj就會(huì)造成內(nèi)存泄漏。

Object obj = new Object();list.add( obj );obj = null ;

除了上面obj這種內(nèi)存泄漏的情況以外,在實(shí)際開(kāi)發(fā)中最常見(jiàn)的內(nèi)存泄漏就是打開(kāi)資源后沒(méi)有調(diào)用close()方法。例如socket、io流等,都需要再最后close()一下防止內(nèi)存泄漏。

標(biāo)簽:

廣告

X 關(guān)閉

廣告

X 關(guān)閉