下一代微服务(service Mesh)
有沒有同學(xué)了解過Service Mesh。?
什么是Service Mesh??
簡(jiǎn)單來說,它可以直接翻譯成服務(wù)網(wǎng)格。它是一個(gè)基礎(chǔ)設(shè)施層,用于處理服務(wù)之間的通信,并且負(fù)責(zé)請(qǐng)求的可靠傳輸。什么意思呢??
serviceMesh演進(jìn)?
在第一代網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng)時(shí)代,那個(gè)時(shí)候的程序員需要完成服務(wù)的網(wǎng)絡(luò)通信,需要自己寫代碼來處理網(wǎng)絡(luò)通信的細(xì)節(jié),比如數(shù)據(jù)包的順序、流量控制。導(dǎo)致網(wǎng)絡(luò)處理邏輯和業(yè)務(wù)邏輯混合在一起,同時(shí)對(duì)于開發(fā)人員來說要求較高。為了解決這個(gè)問題,把網(wǎng)絡(luò)層的處理邏輯進(jìn)行抽象,實(shí)現(xiàn)了TCP/IP技術(shù)。對(duì)于用戶而言,并不需要關(guān)心底層的網(wǎng)絡(luò)通信環(huán)節(jié)。?
到了微服務(wù)時(shí)代,我們也面臨了類似的問題。業(yè)務(wù)人員在做微服務(wù)開發(fā)時(shí)需要處理一些列比較基礎(chǔ)的事情,比如服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、負(fù)載均衡、服務(wù)熔斷和重試等。?
這些功能對(duì)于每一個(gè)業(yè)務(wù)程序員而言,都必須要了解和掌握,而實(shí)際上這些和業(yè)務(wù)功能并沒有太大的關(guān)系,它理應(yīng)是一個(gè)基礎(chǔ)組件。?
所以,有些公司就開始開發(fā)基礎(chǔ)組件,典型的Netflix OSS套件(eureka/hystrix/feign/ribbon/zuul)。有了這些組件,開發(fā)人員就可以使用很少的代碼來實(shí)現(xiàn)這些服務(wù)治理的功能。而恰恰因?yàn)檫@個(gè)原因,使得Spring Cloud的普及非常快,幾乎成了微服務(wù)的代名詞?
但是到這一步之后,就完美了嗎?其實(shí)不是, 雖然spring cloud這個(gè)生態(tài)中的各種組件能夠解決微服務(wù)開發(fā)中的各種問題,但是對(duì)于一個(gè)業(yè)務(wù)開發(fā)而言,需要掌握這么多的技術(shù)組件,門檻比較高。同時(shí)在落地的過程中任何一個(gè)組件出現(xiàn)問題,都需要較長(zhǎng)的時(shí)間來解決。要完全吃透Spring Cloud和Netflix OSS的各種套件是很困難的?
?
總結(jié)
以上是生活随笔為你收集整理的下一代微服务(service Mesh)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring-Cloud中各个组件的职责
- 下一篇: 什么是springboot框架