自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當(dāng)今的微服務(wù)架構(gòu)還需要指定端口嗎?

開發(fā) 架構(gòu)
傳統(tǒng)架構(gòu)中,大家可能還需要用服務(wù)的 ip + 端口來進(jìn)行通信,在微服務(wù)架構(gòu)中,除了網(wǎng)關(guān)應(yīng)用還需要提供明確的端口號外,業(yè)務(wù)應(yīng)用的 ip + 端口號已經(jīng)被服務(wù)發(fā)現(xiàn)、注冊組件所隱去,大家基本已經(jīng)不再關(guān)心業(yè)務(wù)應(yīng)用的端口號了。

在當(dāng)今的技術(shù)環(huán)境下,微服務(wù)架構(gòu)已經(jīng)廣泛流行并深刻地改變了應(yīng)用程序的構(gòu)建和交互方式。

傳統(tǒng)上,應(yīng)用程序之間的通信往往依賴于明確指定 IP 地址與端口號的組合,然而隨著微服務(wù)理念的推進(jìn),服務(wù)名稱調(diào)用逐漸成為主流,這使得我們不得不重新審視應(yīng)用程序是否還需要指定端口這一問題。

傳統(tǒng)架構(gòu)

圖片圖片

從傳統(tǒng)的單體應(yīng)用架構(gòu)來看,指定端口是實現(xiàn)網(wǎng)絡(luò)通信的關(guān)鍵步驟。

例如,一個基于 Java 的 Web 應(yīng)用程序部署在服務(wù)器上,開發(fā)人員需要為其指定一個特定的端口,如 8080,這樣客戶端才能通過訪問服務(wù)器的 IP 地址加上該端口號來請求相應(yīng)的資源。

在這種模式下,端口的指定明確了應(yīng)用程序在網(wǎng)絡(luò)中的接入點,就如同給一座房子確定了一個獨一無二的門牌號,方便外界與之進(jìn)行交互。它使得網(wǎng)絡(luò)請求能夠準(zhǔn)確地找到對應(yīng)的應(yīng)用程序?qū)嵗?,從而實現(xiàn)數(shù)據(jù)的傳輸與處理。

然而,微服務(wù)架構(gòu)帶來了全新的思路。在微服務(wù)架構(gòu)中,眾多小型的、獨立的服務(wù)相互協(xié)作以構(gòu)建復(fù)雜的應(yīng)用系統(tǒng)。如果依然采用傳統(tǒng)的 IP + 端口的調(diào)用方式,會面臨諸多問題。

首先,微服務(wù)的數(shù)量眾多且動態(tài)變化,服務(wù)的啟動、停止、更新以及擴展都可能頻繁發(fā)生。這意味著需要不斷地管理和協(xié)調(diào)大量的端口分配,以避免端口沖突,這無疑是一項復(fù)雜且容易出錯的任務(wù)。

其次,在一個復(fù)雜的微服務(wù)集群中,服務(wù)的 IP 地址可能由于容器編排、自動伸縮等機制而動態(tài)變化,依賴固定的 IP + 端口進(jìn)行調(diào)用會使整個系統(tǒng)變得脆弱且難以維護。

微服務(wù)架構(gòu)

圖片圖片

隨著系統(tǒng)架構(gòu)升級進(jìn)化,當(dāng)大家來到微服務(wù)的時代中,服務(wù)名稱調(diào)用機制就展現(xiàn)出了諸多優(yōu)勢。

借助于服務(wù)發(fā)現(xiàn)組件,如 Consul、Eureka 、Nacos 等,每個微服務(wù)在注冊中心注冊自身時,使用一個具有語義的服務(wù)名稱而非具體的 IP 和端口。

當(dāng)一個服務(wù)需要調(diào)用另一個服務(wù)時,它只需向服務(wù)發(fā)現(xiàn)組件查詢目標(biāo)服務(wù)的名稱,服務(wù)發(fā)現(xiàn)組件就會返回可用的服務(wù)實例的實際網(wǎng)絡(luò)地址信息(包括 IP 和端口),然后進(jìn)行調(diào)用。

這種方式將服務(wù)的網(wǎng)絡(luò)細(xì)節(jié)進(jìn)行了抽象和封裝,使得服務(wù)之間的調(diào)用更加靈活和可靠。開發(fā)人員無需關(guān)注具體的端口分配情況,降低了系統(tǒng)的復(fù)雜性和維護成本,提高了系統(tǒng)的可擴展性和彈性。

但這并不意味著端口在當(dāng)今的應(yīng)用程序中就完全失去了作用。盡管在微服務(wù)內(nèi)部的服務(wù)間調(diào)用可以通過服務(wù)名稱來實現(xiàn),但是端口仍然不可或缺。

例如,在微服務(wù)架構(gòu)中,我們通常都會有一個網(wǎng)關(guān)服務(wù)對外提供服務(wù),而這個網(wǎng)關(guān)服務(wù)通常跟流量入口綁定,比如 Nginx、K8s 里的 Ingress、阿里云的 SLB 等。而這些流量入口將流量轉(zhuǎn)到網(wǎng)關(guān)服務(wù)時,就需要網(wǎng)關(guān)服務(wù)提供明確的端口了。

在 SpringBoot 應(yīng)用中如何啟動隨機端口?

其實很簡單,大家都知道 SpringBoot 中可以通過 server.port 指定端口,如果要啟動隨機端口,將 server.port 設(shè)置為 0 即可。

server.port 設(shè)置為 0 后,可以讓操作系統(tǒng)為我們動態(tài)分配一個可用的端口無需我們在手動指定。

最后

OK,傳統(tǒng)架構(gòu)中,大家可能還需要用服務(wù)的 ip + 端口來進(jìn)行通信,在微服務(wù)架構(gòu)中,除了網(wǎng)關(guān)應(yīng)用還需要提供明確的端口號外,業(yè)務(wù)應(yīng)用的 ip + 端口號已經(jīng)被服務(wù)發(fā)現(xiàn)、注冊組件所隱去,大家基本已經(jīng)不再關(guān)心業(yè)務(wù)應(yīng)用的端口號了。

在這里也是做一個投票,問一下大家是否愿意在自己的項目中將 server.port設(shè)置為0。

責(zé)任編輯:武曉燕 來源: 程序員wayn
相關(guān)推薦

2023-06-01 07:50:42

JSDocTypeScriptAPI

2018-01-15 08:38:41

備份服務(wù)器企業(yè)

2018-09-20 22:04:01

2024-10-14 08:39:25

2024-02-19 00:12:00

模型數(shù)據(jù)

2023-04-07 15:30:24

操作系統(tǒng)ChatGPT

2017-08-17 17:00:59

Androidroot手機

2015-06-19 06:41:45

生命科學(xué)云計算集群計算

2017-12-11 17:14:56

ERP管理數(shù)字化

2020-04-26 09:32:13

物聯(lián)網(wǎng)安全技術(shù)

2024-11-26 07:37:22

2024-05-06 09:35:05

AI網(wǎng)關(guān)開源

2024-01-09 17:58:47

2022-02-22 08:00:55

混合辦公網(wǎng)絡(luò)犯罪網(wǎng)絡(luò)攻擊

2025-04-09 11:15:00

服務(wù)熔斷服務(wù)降分布式系統(tǒng)

2010-07-15 16:21:22

編程語言

2021-03-31 13:20:02

智慧城市物聯(lián)網(wǎng)5G

2023-09-12 14:02:30

數(shù)組vector

2023-01-31 17:24:21

DPUCPUGPU

2009-09-28 11:20:30

面試
點贊
收藏

51CTO技術(shù)棧公眾號