在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Spring Cloud與K8S對(duì)比

我快閉嘴 ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:sp42a ? 2022-09-15 15:46 ? 次閱讀

背景

Spring Cloud 與 K8S 對(duì)比

Spring Cloud vs Istio

Spring Boot + K8S

Service Mesh的價(jià)值

背景

過(guò)去,我們運(yùn)維著“能做一切”的大型單體應(yīng)用程序。這是一種將產(chǎn)品推向市場(chǎng)的很好的方式,因?yàn)閯傞_始我們也只需要讓我們的第一個(gè)應(yīng)用上線。而且我們總是可以回頭再來(lái)改進(jìn)它的。部署一個(gè)大應(yīng)用總是比構(gòu)建和部署多個(gè)小塊要容易。

集中式:

079a1ecc-317b-11ed-ba43-dac502259ad0.png

集中式

集群:

07a3e7c2-317b-11ed-ba43-dac502259ad0.png

集群

分布式:

07b1a218-317b-11ed-ba43-dac502259ad0.png

分布式

分布式和集中式會(huì)配合使用。

我們?cè)诖罱ňW(wǎng)站的時(shí)候,為了及時(shí)響應(yīng)用戶的請(qǐng)求,尤其是高并發(fā)請(qǐng)求的時(shí)候,我們需要搭建分布式集群來(lái)處理請(qǐng)求。我們一個(gè)服務(wù)器的處理能力是有限的。如果用我們一臺(tái)設(shè)備當(dāng)作服務(wù)器,那么當(dāng)并發(fā)量比較大的時(shí)候,同一時(shí)間達(dá)到上百的訪問(wèn)量。那服務(wù)器就宕機(jī)了。然后只能重啟服務(wù)器,當(dāng)出現(xiàn)高并發(fā)訪問(wèn)的時(shí)候,就又會(huì)宕機(jī)。所以我們需要更多的服務(wù)器來(lái)并行工作,處理用戶的請(qǐng)求。那么問(wèn)題來(lái)了,我們服務(wù)器運(yùn)行的時(shí)候,怎么分發(fā)大量的請(qǐng)求給不同的服務(wù)器呢?一般會(huì)采用(1apache+nTomcat)或者服務(wù)器模式來(lái)分發(fā)并處理請(qǐng)求?;蛘卟捎胣ginx分發(fā)請(qǐng)求。

微服務(wù)是運(yùn)行在自己的進(jìn)程中的可獨(dú)立部署的服務(wù)套件。他們通常使用 HTTP 資源進(jìn)行通信,每個(gè)服務(wù)通常負(fù)責(zé)整個(gè)應(yīng)用中的某一個(gè)單一的領(lǐng)域。在流行的電子商務(wù)目錄例子中,你可以有一個(gè)商品條目服務(wù),一個(gè)審核服務(wù)和一個(gè)評(píng)價(jià)服務(wù),每個(gè)都只專注一個(gè)領(lǐng)域。

用這種方法讓多語(yǔ)言服務(wù)(使用不同語(yǔ)言編寫的服務(wù))也成為可能,這樣我們就可以讓 Java/C++ 服務(wù)執(zhí)行更多的計(jì)算密集型工作,讓 Rails / Node.js 服務(wù)更多來(lái)支持前端應(yīng)用等等。

微服務(wù)會(huì)成為大規(guī)模分布式應(yīng)用的主流架構(gòu)。任何復(fù)雜的工程問(wèn)題都會(huì)歸結(jié)為devide and conquer(分而治之),意思就是就是把一個(gè)復(fù)雜的問(wèn)題分成兩個(gè)或更多的相同或相似的子問(wèn)題,再把子問(wèn)題分成更小的子問(wèn)題……直到最后子問(wèn)題可以簡(jiǎn)單的直接求解,原問(wèn)題的解即子問(wèn)題的解的合并。微服務(wù)本質(zhì)是對(duì)服務(wù)的拆分,與工程領(lǐng)域慣用的“分而治之”的思路是一致的。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

Spring Cloud 與 K8S 對(duì)比

兩個(gè)平臺(tái) Spring Cloud 和 Kubernetes 非常不同并且它們之間沒有直接的相同特征。

07c0782e-317b-11ed-ba43-dac502259ad0.png

Spring Cloud 與 K8S 對(duì)比

?兩種架構(gòu)處理了不同范圍的MSA障礙,并且它們從根本上用了不同的方法。Spring Cloud方法是試圖解決在JVM中每個(gè)MSA挑戰(zhàn),然而Kubernetes方法是試圖讓問(wèn)題消失,為開發(fā)者在平臺(tái)層解決。Spring Cloud在JVM中非常強(qiáng)大,Kubernetes管理那些JVM很強(qiáng)大。同樣的,它就像一個(gè)自然發(fā)展,結(jié)合兩種工具并且從兩個(gè)項(xiàng)目中最好的部分受益。?

可以看到,里面差不多一半關(guān)注點(diǎn)是和運(yùn)維相關(guān)的。這么看來(lái),似乎拿spring cloud和kubernetes比較有點(diǎn)不公平,spring cloud只是一個(gè)開發(fā)框架,對(duì)于應(yīng)用如何部署和調(diào)度是無(wú)能為力的,而kubernetes是一個(gè)運(yùn)維平臺(tái)。也許用spring cloud+cloud foundry去和kubernetes比較才更加合理,但需要注意的是,即使加入了cloud foundry的paas能力,spring cloud仍然是“侵入式”的且語(yǔ)言相關(guān),而kubernetes是“非侵入式”的且語(yǔ)言無(wú)關(guān)。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://gitee.com/zhijiantianya/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

Spring Cloud vs Istio

07cf9b7e-317b-11ed-ba43-dac502259ad0.png

Spring Cloud vs Istio

?這里面哪些內(nèi)容是我們可以拿掉或者說(shuō)基于 Service Mesh(以 Istio 為例)能力去做的?分析下來(lái),可以替換的組件包括網(wǎng)關(guān)(gateway 或者 Zuul,由Ingress gateway 或者 egress 替換),熔斷器(hystrix,由SideCar替換),注冊(cè)中心(Eureka及Eureka client,由Polit,SideCar 替換),負(fù)責(zé)均衡(Ribbon,由SideCar 替換),鏈路跟蹤及其客戶端(Pinpoint 及 Pinpoint client,由 SideCar 及Mixer替換)。這是我們?cè)?Spring Cloud 解析中需要完成的目標(biāo):即確定需要?jiǎng)h除或者替換的支撐模塊。?

07dddeb4-317b-11ed-ba43-dac502259ad0.png

Spring Cloud vs Istio

可以說(shuō),spring cloud關(guān)注的功能是kubernetes的一個(gè)子集。

可以看出,兩邊的解決方案都是比較完整的。kubernetes這邊,在Istio還沒出來(lái)以前,其實(shí)只能提供最基礎(chǔ)的服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)能力(service只是一個(gè)4層的轉(zhuǎn)發(fā)代理),istio出來(lái)以后,具有了相對(duì)完整的微服務(wù)能力。而spring cloud這邊,除了發(fā)布、調(diào)度、自愈這些運(yùn)維平臺(tái)的功能,其他的功能也支持的比較全面。相對(duì)而言,云廠商會(huì)更喜歡kubernetes的方案,原因就是三個(gè)字:非侵入。平臺(tái)能力與應(yīng)用層的解耦,使得云廠商可以非常方便的升級(jí)、維護(hù)基礎(chǔ)設(shè)施而不需要去關(guān)心應(yīng)用的情況,這也是我比較看好service mesh這類技術(shù)前景的原因。

Spring Boot + K8S

如果不用 Spring Cloud,那就是使用 Spring Boot + K8S。

07ecb0f6-317b-11ed-ba43-dac502259ad0.png

Spring Boot + K8S

這里就需要介紹一個(gè)項(xiàng)目,Spring Cloud Kubernetes,作用是把kubernetes中的服務(wù)模型映射到Spring Cloud的服務(wù)模型中,以使用Spring Cloud的那些原生sdk在kubernetes中實(shí)現(xiàn)服務(wù)治理。具體來(lái)說(shuō),就是把k8s中的services對(duì)應(yīng)到Spring Cloud中的services,k8s中的endpoints對(duì)應(yīng)到Spring Cloud的instances。這樣通過(guò)標(biāo)準(zhǔn)的Spring Cloud api就可以對(duì)接k8的服務(wù)治理體系。

老實(shí)說(shuō),個(gè)人認(rèn)為這個(gè)項(xiàng)目的意義并不是很大,畢竟都上k8了,k8本身已經(jīng)有了比較完善的微服務(wù)能力(有注冊(cè)中心、配置中心、負(fù)載均衡能力),應(yīng)用之間直接可以互相調(diào)用,應(yīng)用完全無(wú)感知,你再通過(guò)sdk去調(diào)用,有點(diǎn)多此一舉的感覺。而且現(xiàn)在強(qiáng)調(diào)的是語(yǔ)言非侵入,Spring Cloud一個(gè)很大的限制是只支持java語(yǔ)言(甚至比較老的j2ee應(yīng)用都不支持,只支持Spring Boot應(yīng)用)。所以我個(gè)人感覺,這個(gè)項(xiàng)目,在具體業(yè)務(wù)服務(wù)層面,使用的范圍非常有限。

借助于Spring Cloud Kubernetes項(xiàng)目,zuul可以以一種無(wú)侵入的方式提供api網(wǎng)關(guān)的能力,應(yīng)用完全不需要做任何改造,并且網(wǎng)關(guān)是可插拔的,將來(lái)可以用其他網(wǎng)關(guān)產(chǎn)品靈活替換,整體耦合程度非常低。得益于k8的service能力,zuul甚至支持異構(gòu)應(yīng)用的接入,這是Spring Cloud體系所不具備的。而本身基于java開發(fā),使得java程序員可以方便的基于zuul開發(fā)各種功能復(fù)雜的filter,而不需要去學(xué)習(xí)go或者openresty這樣不太熟悉的語(yǔ)言。

Service Mesh的價(jià)值

無(wú)論是單體應(yīng)用,還是分布式應(yīng)用,都可以建立在Service Mesh上,mesh上的sidecar支撐了所有的上層應(yīng)用,業(yè)務(wù)開發(fā)者無(wú)須關(guān)心底層構(gòu)成,可以用Java,也可以用Go等語(yǔ)言完成自己的業(yè)務(wù)開發(fā)。

當(dāng)微服務(wù)架構(gòu)體系越來(lái)越復(fù)雜的時(shí)候,需要將“業(yè)務(wù)服務(wù)”和“基礎(chǔ)設(shè)施”解耦,將一個(gè)微服務(wù)進(jìn)程一分為二:

07f83246-317b-11ed-ba43-dac502259ad0.png

Service Mesh的價(jià)值

為什么代理會(huì)叫sidecar proxy?

看了上圖就容易懂了,biz和proxy相生相伴,就像摩托車(motor)與旁邊的車廂(sidecar)。未來(lái),sidecar和proxy就指微服務(wù)進(jìn)程解耦成兩個(gè)進(jìn)程之后,提供基礎(chǔ)能力的那個(gè)代理進(jìn)程。

Istio的理論概念是Service Mesh(服務(wù)網(wǎng)絡(luò)),我們不必糾結(jié)于概念實(shí)際也是微服務(wù)的一種落地形式有點(diǎn)類似上面的SideCar模式,它的主要思想是關(guān)注點(diǎn)分離,即不像SpringCloud一樣交給研發(fā)來(lái)做,也不集成到k8s中產(chǎn)生職責(zé)混亂,Istio是通過(guò)為服務(wù)配 Agent代理來(lái)提供服務(wù)發(fā)現(xiàn)、負(fù)截均衡、限流、鏈路跟蹤、鑒權(quán)等微服務(wù)治理手段。

Istio開始就是與k8s結(jié)合設(shè)計(jì)的,Istio結(jié)合k8s可以牛逼的落地微服務(wù)架構(gòu)。

istio 超越 spring cloud和dubbo 等傳統(tǒng)開發(fā)框架之處, 就在于不僅僅帶來(lái)了遠(yuǎn)超這些框架所能提供的功能, 而且也不需要應(yīng)用程序?yàn)榇俗龃罅康母膭?dòng), 開發(fā)人員也不必為上面的功能實(shí)現(xiàn)進(jìn)行大量的知識(shí)儲(chǔ)備.

但結(jié)論是不是 spring cloud 能做到的,k8s + istio 也能做到?甚至更好?

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    14343
  • Cloud
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    5355
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    224

    瀏覽量

    8716

原文標(biāo)題:Spring Cloud 還沒學(xué)明白,Istio 又是什么鬼??

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解決方案與選型對(duì)比

    摘要: 今天,日志服務(wù)再次升級(jí)Kubernetes(k8s)的日志解決方案。1分鐘內(nèi)即可完成整個(gè)集群部署,支持動(dòng)態(tài)擴(kuò)容,提供采集宿主機(jī)日志、容器日志、容器stdout等所有數(shù)據(jù)源的一站式采集。點(diǎn)此
    發(fā)表于 02-28 12:49

    全面提升,阿里云Docker/Kubernetes(K8S) 日志解決方案與選型對(duì)比

    摘要: 今天,日志服務(wù)再次升級(jí)Kubernetes(k8s)的日志解決方案。1分鐘內(nèi)即可完成整個(gè)集群部署,支持動(dòng)態(tài)擴(kuò)容,提供采集宿主機(jī)日志、容器日志、容器stdout等所有數(shù)據(jù)源的一站式采集。點(diǎn)此
    發(fā)表于 02-28 12:50

    OpenStack與K8s結(jié)合的兩種方案的詳細(xì)介紹和比較

    OpenStack與K8S結(jié)合主要有兩種方案。一是K8S部署在OpenStack平臺(tái)之上,二是K8S和OpenStack組件集成。
    的頭像 發(fā)表于 10-14 09:38 ?2.7w次閱讀

    如何使用kubernetes client-go實(shí)踐一個(gè)簡(jiǎn)單的與K8s交互過(guò)程

    【導(dǎo)讀】Kubernetes項(xiàng)目使用Go語(yǔ)言編寫,對(duì)Go api原生支持非常便捷。 本篇文章介紹了如何使用kubernetes client-go實(shí)踐一個(gè)簡(jiǎn)單的與K8s交互過(guò)程
    的頭像 發(fā)表于 02-02 11:16 ?6854次閱讀
    如何使用kubernetes client-go實(shí)踐一個(gè)簡(jiǎn)單的與<b class='flag-5'>K8s</b>交互過(guò)程

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對(duì)強(qiáng)大的集群,成千上萬(wàn)的容器,突然感覺不香了。 這時(shí)候就需要我們的主角 Kubernetes 上場(chǎng)了,先來(lái)了解一下 K8s 的基本概念,后面再介紹實(shí)踐,由淺入深步步為營(yíng)
    的頭像 發(fā)表于 06-02 11:56 ?3445次閱讀

    簡(jiǎn)單說(shuō)明k8s和Docker之間的關(guān)系

    這篇文章主要介紹了k8s和Docker關(guān)系簡(jiǎn)單說(shuō)明,本文利用圖文講解的很透徹,有需要的同學(xué)可以研究下 最近項(xiàng)目用到kubernetes(以下簡(jiǎn)稱k8s,ks之間有
    的頭像 發(fā)表于 06-24 15:48 ?3416次閱讀

    K8S集群服務(wù)訪問(wèn)失敗怎么辦 K8S故障處理集錦

    問(wèn)題1:K8S集群服務(wù)訪問(wèn)失?。?? ? 原因分析:證書不能被識(shí)別,其原因?yàn)椋鹤远x證書,過(guò)期等。 解決方法:更新證書即可。 問(wèn)題2:K8S集群服務(wù)訪問(wèn)失?。?curl: (7) Failed
    的頭像 發(fā)表于 09-01 11:11 ?1.6w次閱讀
    <b class='flag-5'>K8S</b>集群服務(wù)訪問(wèn)失敗怎么辦 <b class='flag-5'>K8S</b>故障處理集錦

    K8S(kubernetes)學(xué)習(xí)指南

    K8S(kubernetes)學(xué)習(xí)指南
    發(fā)表于 06-29 14:14 ?0次下載

    mysql部署在k8s上的實(shí)現(xiàn)方案

    的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) 應(yīng)用軟件之一。這里主要講 mysql 部署在 k8s 上,mysql 部署在 k8s 上的優(yōu)勢(shì)主要有以下幾點(diǎn)。
    的頭像 發(fā)表于 09-26 10:39 ?2512次閱讀

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡(jiǎn)稱K8s,是一個(gè)開源的,用于管理云平臺(tái)中多個(gè)主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡(jiǎn)單并且高效(powerful
    發(fā)表于 07-19 13:14 ?1116次閱讀

    什么是K3sK8sK3sK8s有什么區(qū)別?

    Kubernetes,通??s寫為 K8s,是領(lǐng)先的容器編排工具。該開源項(xiàng)目最初由 Google 開發(fā),幫助塑造了現(xiàn)代編排的定義。該系統(tǒng)包括了部署和運(yùn)行容器化系統(tǒng)所需的一切。
    的頭像 發(fā)表于 08-03 10:53 ?7559次閱讀

    k8s生態(tài)鏈包含哪些技術(shù)

    1. Apache APISIX Ingress 定義 ? 在 K8s 生態(tài)中,Ingress 作為表示 K8s 流量入口的一種資源,想要讓其生效,就需要有一個(gè) Ingress Controller
    的頭像 發(fā)表于 08-07 10:56 ?1238次閱讀
    <b class='flag-5'>k8s</b>生態(tài)鏈包含哪些技術(shù)

    K8S落地實(shí)踐經(jīng)驗(yàn)分享

    k8s 即 Kubernetes,是一個(gè)開源的容器編排引擎,用來(lái)對(duì)容器化應(yīng)用進(jìn)行自動(dòng)化部署、 擴(kuò)縮和管理。
    的頭像 發(fā)表于 01-02 11:45 ?1155次閱讀
    <b class='flag-5'>K8S</b>落地實(shí)踐經(jīng)驗(yàn)分享

    k8s云原生開發(fā)要求

    Kubernetes(K8s)云原生開發(fā)對(duì)硬件有一定要求。CPU方面,建議至少配備2個(gè)邏輯核心,高性能CPU更佳。內(nèi)存至少4GB,但8GB或更高更推薦。存儲(chǔ)需至少20-30GB可用空間,SSD提升
    的頭像 發(fā)表于 10-24 10:03 ?221次閱讀
    <b class='flag-5'>k8s</b>云原生開發(fā)要求

    k8s和docker區(qū)別對(duì)比,哪個(gè)更強(qiáng)?

    部署、擴(kuò)展、管理和應(yīng)用生命周期管理能力,可實(shí)現(xiàn)高可用性和自動(dòng)伸縮,兩者常結(jié)合使用以優(yōu)化容器化和應(yīng)用管理。UU云小編將對(duì)k8s和docker區(qū)別進(jìn)行詳細(xì)對(duì)比
    的頭像 發(fā)表于 12-11 13:55 ?99次閱讀
    主站蜘蛛池模板: 四虎成人欧美精品在永久在线| 人人爱爱| 久久精品夜色国产| 天天干天天上| 国产清纯白嫩大学生正在播放| 日本激情网| 美女把尿口扒开让男人桶出水 | 色老头久久久久| 国产精品久久久亚洲| www.av日韩| 婷婷欧美| aaa免费视频| xxxx黄色| 欧美一级高清片在线| 色淫阁色九九| bt天堂在线最新版在线| 亚洲产国偷v产偷v自拍色戒| 国产亚洲精品仙踪林在线播放| 国产在视频线精品视频2021| 亚洲人成人| 97午夜精品| 亚洲区| 婷婷月| 亚洲午夜视频在线观看| 亚洲大胆精品337p色| 免费国产黄网站在线观看视频| 久色乳综合思思在线视频| 一级特黄aa大片免费| 超级黄色毛片| 亚洲一区二区三区在线| 欧美freesex10一13| 国产手机在线看片| 色伊伊| 手机看片自拍| 亚洲无线码一区在线观看| ts人妖系列在线专区| 亚洲男人的天堂在线播放| 久久新地址| 男人操女人视频在线观看| 欧美成人69| 操插干|