由于此問題并沒有闡明清楚是在什么情況下做到這兩個(gè)ip服務(wù)器之間訪問,所以下面自己能通過服務(wù)器之間直接互ping、前端開發(fā)處理方式和后端開發(fā)處理方式這問題來說明。此問題直觀問題就是跨網(wǎng)段訪問的問題。
首先解決兩個(gè)服務(wù)器之間直接訪問的問題。以liunx服務(wù)器為例,由于處于不同網(wǎng)段或端口不允許ping,不能做到直接訪問到服務(wù)器。這里面有很多高深知識(shí)和問題,自己不是專業(yè)運(yùn)維人員,只能簡(jiǎn)單講一下處理這種問題的思路。對(duì)于跨網(wǎng)段的問題,可以通過添加路由方式解決,例如192.168.2.1不能ping通192.168.1.1,我們可以在192.168.2.1上執(zhí)行vi /etc/rc.local;然后在文件最后一行添加route add default gw 192.168.2.1;wq保存退出即可。
前端項(xiàng)目布署的服務(wù),由于現(xiàn)在前后端分離的開發(fā)方式,HTTP同源策略安全模型的問題就需要規(guī)避。因?yàn)樵诓煌琲p下的服務(wù)器,所以具體點(diǎn)就是跨域問題。解決跨域問題有很多方式,例如JSONP、iframe、CORS訪問、Nginx反向代理等。在個(gè)人實(shí)際開發(fā)工作中,前后端分離與Vue等前端框架的流行,以及nginx的強(qiáng)大,使用CORS和Nginx方式最為理想。
如果是后端項(xiàng)目布署的服務(wù)器之間訪問,以java為例,可以使用使http相關(guān)類實(shí)現(xiàn)數(shù)據(jù)訪問。例如HttpUrlConnection和HttpClient等,前題是服務(wù)器之間沒做網(wǎng)絡(luò)安全策略。如果是通過tcp方式訪問服務(wù),可以使用Socket來實(shí)現(xiàn)編程用于傳輸文件等。
隨著微服務(wù)的流行,類似springcloud的微服務(wù)直接就跟ip無關(guān)了,我們只需通過服務(wù)名發(fā)現(xiàn)就能做到直接訪問。具體來說就是192.168.1.1上的微服務(wù)注冊(cè)到eureka,192.168.2.1上的微服務(wù)也注冊(cè)在同一個(gè)eureka集群下,2.1就可以直接通過feign框架加上1.1注冊(cè)的服務(wù)名做到訪問調(diào)用,而不用關(guān)心ip是多少。當(dāng)然也要考慮到微服務(wù)在多實(shí)例下負(fù)載均衡的問題,因?yàn)椴荒鼙WC每次訪問都能擊中192.168.1.1這臺(tái)服務(wù)器。單實(shí)例就不說了,肯定是這一臺(tái)ip服務(wù)器上服務(wù)被訪問到。
篇幅有限,不能做到面面俱到,其中不足之處請(qǐng)指出并斧正。對(duì)于此問題還有什么補(bǔ)充的地方,也歡迎大家積極探討。
-
IP
+關(guān)注
關(guān)注
5文章
1655瀏覽量
149333 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9021瀏覽量
85184
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論