網(wǎng)站建設(shè)捌金手指花總八百度指數(shù)網(wǎng)站
1.微服務(wù)為什么設(shè)置不同的namespace
為了實(shí)現(xiàn)三種服務(wù)三種情況下的隔離。
2.為什么要用nginx為naocos集群結(jié)點(diǎn)做負(fù)載均衡?
2.1 正向代理
就像我們?cè)L問(wèn)外網(wǎng)需要一個(gè)代理。
?2.2 反向代理
我們不需要訪(fǎng)問(wèn)真實(shí)的ip,只需要訪(fǎng)問(wèn) 這個(gè)服務(wù)的代理服務(wù)器即可,就會(huì)被轉(zhuǎn)發(fā)到真實(shí)的ip,隱藏了真實(shí)服務(wù)器的ip地址。
就像訪(fǎng)問(wèn)域名,它會(huì)給你的請(qǐng)求分到別的具體ip服務(wù)器。
2.3 Nginx為啥不用來(lái)做服務(wù)的負(fù)載均衡?
Nacos是做服務(wù)的注冊(cè)與發(fā)現(xiàn)(暫不討論其他功能)的,內(nèi)部封裝了ribbon負(fù)載均衡,與open feign整合使用能夠很靈活的開(kāi)發(fā)項(xiàng)目;
Nginx能夠?qū)崿F(xiàn)反向代理和負(fù)載均衡,一般用來(lái)搭建服務(wù)器的集群,實(shí)現(xiàn)高并發(fā);
作用不同:
區(qū)別就是Nacos能夠做的服務(wù)的注冊(cè)與發(fā)現(xiàn),Nginx可以實(shí)現(xiàn)對(duì)服務(wù)端的反向代理,但做不到主動(dòng)讓服務(wù)的發(fā)現(xiàn)。
- 如果使用Nginx來(lái)實(shí)現(xiàn)服務(wù)之間的調(diào)用,遠(yuǎn)沒(méi)有使用Nacos方便;
- Nacos同樣也做不到實(shí)現(xiàn)一個(gè)服務(wù)器集群的反向代理,如上圖所示,Nacos如果只有一臺(tái)服務(wù)器,會(huì)存在單點(diǎn)故障的風(fēng)險(xiǎn),所以使用nginx做了集群,不僅消除了風(fēng)險(xiǎn)還提高了并發(fā)量。
?nginx 可以對(duì) 服務(wù)器集群做反向代理。
下面這是?nginx 的代理,nacos的代理 都是分到具體服務(wù)器(具體的ip和端口),而不是分到集群。
2.4 nacos 需要有集群,那不然你nacos注冊(cè)中心也會(huì)掛啊
微服務(wù)都需要集群,你ngnix也需要集群。
3.Http連接池(跟數(shù)據(jù)庫(kù)連接池差不多)
3.1 Http 存在的問(wèn)題
3.2 創(chuàng)建http 線(xiàn)程池
3. 3 通過(guò)連接池獲取httpClient(這個(gè)對(duì)象就是發(fā)請(qǐng)求的)
?3.4 設(shè)定請(qǐng)求類(lèi)型并執(zhí)行請(qǐng)求
3.5 連接池狀態(tài)觀(guān)察
4 .gateway和 nginx的區(qū)別
有了nginx做網(wǎng)關(guān),為啥還要用到gateway呢?
4.1 不同之處
首先這兩種網(wǎng)關(guān)的定義不一樣
nginx用戶(hù)訪(fǎng)問(wèn)的總?cè)肟?#xff0c;也就是前端頁(yè)面的容器,流量網(wǎng)關(guān)。比如對(duì)某個(gè)ip服務(wù)器的訪(fǎng)問(wèn)。
gateway的定義是針對(duì)每一個(gè)業(yè)務(wù),微服務(wù),屬于業(yè)務(wù)網(wǎng)關(guān)。
gateway的主要功能有,路由,斷言,過(guò)濾器,利用它的這些特性,可以做流量控制(對(duì)流量進(jìn)行篩選。
nginx做網(wǎng)關(guān),更多的是做總流量入口,反向代理,負(fù)載均衡等,還可以用來(lái)做web服務(wù)器。
4.2 相同之處
都對(duì)流量做負(fù)載均衡。
nginx對(duì)總流量復(fù)雜均衡,gateway對(duì)業(yè)務(wù)流量做負(fù)載均衡。
4.3 geteWay的負(fù)載均衡還是要去nacos 里扒。
所以得配置nacos的地址。?
?
5.gateway只實(shí)現(xiàn)了只實(shí)現(xiàn)了 31種過(guò)濾器,但是我們能不能自定義一個(gè)呢?
全局過(guò)濾器的作用也是處理一切進(jìn)入網(wǎng)關(guān)的請(qǐng)求和微服務(wù)響應(yīng),與 GatewayFilter 的作用一樣。區(qū)別在于 GlobalFilter 的邏輯可以寫(xiě)代碼來(lái)自定義規(guī)則;而 GatewayFilter 通過(guò)配置定義,處理邏輯是固定的。
當(dāng)然gate way是有自己的全局過(guò)濾器。
過(guò)濾器 如果 order (用來(lái)排序的)的值都一樣,那就默認(rèn)過(guò)濾器>當(dāng)前過(guò)濾器> GlobalFilter。
?
過(guò)濾器執(zhí)行的順序規(guī)則如下:
?