鍍金池/ 問答/人工智能  Linux/ 有關(guān)分布式系統(tǒng)的負(fù)載均衡問題

有關(guān)分布式系統(tǒng)的負(fù)載均衡問題

目前做微服務(wù)接觸到spring cloud,使用ribbon做了負(fù)載均衡;
而dubbo本身也實現(xiàn)了負(fù)載均衡;
但是在實際生產(chǎn)環(huán)境中依然使用了nginx;
它們有什么區(qū)別呢?既然dubbo和spring cloud實現(xiàn)了負(fù)載均衡,為什么生產(chǎn)系統(tǒng)還要使用nginx呢?

回答
編輯回答
生性

負(fù)載均衡是用于平衡每臺服務(wù)的請求量,防止產(chǎn)生熱點。

dubbo提供的是RPC的服務(wù)調(diào)用,這種服務(wù)一般用于內(nèi)部接口,例如公司內(nèi)部跨業(yè)務(wù)的操作,A 業(yè)務(wù)需要通過dubbo訪問B 業(yè)務(wù)的服務(wù)。
此時dubbo的負(fù)載均衡相當(dāng)于對于B業(yè)務(wù)的服務(wù)做負(fù)載均衡。

ribbon是提供http請求的負(fù)載均衡,這種一般用于對外的API接口,例如基于restful的接口。
例如A業(yè)務(wù)有100個節(jié)點,其中30個節(jié)點是對外的Api接口,這種情況下就可以使用這種方式進(jìn)行均在均衡。

nginx是在網(wǎng)關(guān)層面的負(fù)載均衡,這種負(fù)載均衡不需要代碼入侵,可以實現(xiàn)動態(tài)配置。并且無關(guān)協(xié)議,可以對于多種協(xié)議實現(xiàn)負(fù)載均衡,包括http, rpc等。

總結(jié)來看,dubbo的負(fù)載均衡只面向dubbo服務(wù),是rpc服務(wù)的負(fù)載均衡。ribbon的負(fù)載均衡面向http請求。這兩種都是細(xì)粒度化的負(fù)載均衡。
nginx是網(wǎng)關(guān)層面的負(fù)載均衡。

參考閱讀:https://www.roncoo.com/course...

2018年8月23日 22:02