最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

微服務(wù)架構(gòu)Springcloud詳解-初識springcloud

2021-04-16 10:22 作者:動力節(jié)點小王本王  | 我要投稿



理論概念的梳理

在系統(tǒng)架構(gòu)與設(shè)計的實踐中,從宏觀上可以總結(jié)為三個階段;

  • 集中式架構(gòu):就是把所有的功能、模塊都集中到一個項目中,部署在一臺服務(wù)器上,從而對外提供服務(wù)(單體架構(gòu)、單體服務(wù)、單體應(yīng)用);

    直白一點:就是只有一個項目,只有一個war;

  • 分布式架構(gòu):就是把所有的功能、模塊拆分成不同的子項目,部署在多臺不同的服務(wù)器上,這些子項目相互協(xié)作共同對外提供服務(wù)。

    直白一點:就是有很多項目,有很多war包,這些項目相互協(xié)作完成需要的功能,不是一個war能完成的,一個war包完成不了;

    比如:

    Shop項目:單體應(yīng)用

    Shop項目:拆分--> (user-center, order-center, trade-center) 分布式應(yīng)用

  • 微服務(wù)架構(gòu):分布式強調(diào)系統(tǒng)的拆分,微服務(wù)也是強調(diào)系統(tǒng)的拆分,微服務(wù)架構(gòu)屬于分布式架構(gòu)的范疇;

并且到目前為止,微服務(wù)并沒有一個統(tǒng)一的標準的定義,那么微服務(wù)究竟是什么?

微服務(wù)一詞源于 Martin Fowler(馬丁.福勒)的名為 Microservices 的博文,可以在他的官方博客上找到這篇文章:

http://martinfowler.com/articles/microservices.html?

中文翻譯版本:

https://www.martinfowler.cn/articles/microservices.html?

簡單地說, 微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計風(fēng)格, 它的主旨是將一個原本獨立的系統(tǒng)拆分成多個小型服務(wù),這些小型服務(wù)都在各自獨立的進程中運行,服務(wù)之間通過基于 HTTP 的 RESTful API 進行通信協(xié)作;?

(dubbo -->dubbo協(xié)議 )??

RESTful API ?(controller --> 調(diào)用 congtroller)

被拆分后的每一個小型服務(wù)都專注于完成系統(tǒng)中的某一項業(yè)務(wù)功能,職責(zé)單一,?并且每個服務(wù)都是一個獨立的項目,可以進行獨立的測試、開發(fā)和部署等;

由于各個獨立的服務(wù)之間使用的是基于 HTTP 的 JSON 作為數(shù)據(jù)通信協(xié)作的基礎(chǔ),所以這些微服務(wù)可以使用不同的語言來開發(fā);

比如:項目里面有User模塊和Order模塊,但是User模塊和Order模塊并沒有直接關(guān)系,僅僅只是一些數(shù)據(jù)需要交互,那么就可以把這2個模塊單獨分開來,當user需要調(diào)用order的時候,order是一個服務(wù)方,但是order需要調(diào)用user的時候,user又是服務(wù)方了, 所以,它們并不在乎誰是服務(wù)方誰是調(diào)用方,他們都是2個獨立的服務(wù),這就是微服務(wù)的概念;

經(jīng)典面試:分布式和微服務(wù)有什么區(qū)別?

分布式,就是將巨大一個系統(tǒng)劃分為多個模塊,這一點和微服務(wù)是一樣的,都是要把系統(tǒng)進行拆分,部署到不同機器上,因為一臺機器可能承受不了這么大的訪問壓力,或者說要支撐這么大的訪問壓力需要采購一臺性能超級好的服務(wù)器,其財務(wù)成本非常高,有這些預(yù)算完全可以采購很多臺普通的服務(wù)器了,分布式系統(tǒng)各個模塊通過接口進行數(shù)據(jù)交互,其實分布式也是一種微服務(wù),因為都是模塊拆分變?yōu)楠毩⒌膯卧?,提供接口來調(diào)用,那么們本質(zhì)的區(qū)別是什么

們的本質(zhì)的區(qū)別體現(xiàn)在“目標”上, 何為目標,就是你采用分布式架構(gòu)或者采用微服務(wù)架構(gòu),你最終是為了什么,要達到什么目的??

分布式架構(gòu)的目標是什么? 就是訪問量很大一臺機器承受不了,或者是成本問題,不得不使用多臺機器來完成服務(wù)的部署;

而微服務(wù)的目標是什么?只是讓各個模塊拆分開來,不會被互相影響,比如模塊的升級或者出現(xiàn)BUG或者是重構(gòu)等等都不要影響到其他模塊,微服務(wù)它是可以在一臺機器上部署;?

但是:分布式也是微服務(wù)的一種,微服務(wù)也屬于分布式;

面試:微服務(wù)與Spring-Cloud的關(guān)系或區(qū)別?

微服務(wù)只是一種項目的架構(gòu)方式、架構(gòu)理念,或者說是一種概念,就如同我們的MVC架構(gòu)一樣, 那么Spring Cloud便是對這種架構(gòu)方式的技術(shù)落地實現(xiàn);

面試:微服務(wù)一定要使用Spring Cloud嗎?

微服務(wù)只是一種項目的架構(gòu)方式、架構(gòu)理念,所以任何技術(shù)都可以實現(xiàn)這種架構(gòu)理念,只是微服務(wù)架構(gòu)里面有很多問題需要我們?nèi)ソ鉀Q,比如:負載均衡,服務(wù)的注冊與發(fā)現(xiàn),服務(wù)調(diào)用,服務(wù)路由,服務(wù)熔斷等等一系列問題,如果你自己從0開始實現(xiàn)微服務(wù)的架構(gòu)理念,那頭發(fā)都掉光了,所以Spring Cloud 幫我們做了這些事情,Spring Cloud將處理這些問題的的技術(shù)全部打包好了,我們只需要開箱即用;

What is Spring Cloud?

官網(wǎng):https://spring.io/projects/spring-cloud?

版本:Greenwich SR3

出自官方:

Spring Cloud為開發(fā)人員提供了一些工具用來快速構(gòu)建分布式系統(tǒng)中的一些常見模式和解決一些常見問題(例如配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線、一次性令牌、全局鎖、領(lǐng)導(dǎo)選舉、分布式會話、群集狀態(tài))。分布式系統(tǒng)的協(xié)調(diào)導(dǎo)致了很多樣板式的代碼(很多固定套路的代碼),使用Spring Cloud開發(fā)人員可以快速建立實現(xiàn)這些模式的服務(wù)和應(yīng)用程序。它們在任何分布式環(huán)境中都能很好地運行,包括開發(fā)人員自己的筆記本電腦、裸機數(shù)據(jù)中心和云計算等托管平臺;

Spring Cloud特性

Spring Cloud為分布式系統(tǒng)開發(fā)的典型應(yīng)用場景提供良好的開箱即用的功能,比如:

  • 分布式/版本化配置

  • 服務(wù)注冊和發(fā)現(xiàn)

  • 路由

  • 服務(wù)服務(wù)間的調(diào)用

  • 負載均衡

  • 斷路器

  • 全局鎖

  • 領(lǐng)導(dǎo)選舉與集群狀態(tài)

  • 分布式消息傳遞

Spring Cloud下的主要項目

Spring Cloud Config

Spring Cloud Netflix

Spring Cloud Bus

Spring Cloud Cloudfoundry

Spring Cloud Open Service Broker

Spring Cloud Cluster

Spring Cloud Consul

Spring Cloud Security

Spring Cloud Sleuth

Spring Cloud Data Flow

Spring Cloud Stream

Spring Cloud Stream App Starters

Spring Cloud Task

Spring Cloud Task App Starters

Spring Cloud Zookeeper

Spring Cloud AWS

Spring Cloud Connectors

Spring Cloud Starters

Spring Cloud CLI

Spring Cloud Contract

Spring Cloud Gateway

Spring Cloud OpenFeign

Spring Cloud Pipelines

Spring Cloud Function

Spring Cloud的版本

Spring Cloud是由一系列獨立項目組成的,每個獨立的項目具有不同的發(fā)布節(jié)奏,每次Spring Cloud發(fā)布版本時,就會組合這一系列的子項目,Spring Cloud為了避免大家對版本號的誤解,避免與子項目版本號混淆,所以Spring Cloud發(fā)布的版本是一個按照字母順序的倫敦地鐵站的名字(“天使”是第一個版本,“布里克斯頓”是第二個),字母順序是從A-Z,目前最新穩(wěn)定版本Greenwich SR3,當Spring Cloud里面的某些子項目出現(xiàn)關(guān)鍵性bug或重大更新,則發(fā)布序列將推出名稱以“.SRX”結(jié)尾的版本,其中“X”是一個數(shù)字,比如:Greenwich SR1、Greenwich SR2、Greenwich SR3;

Spring Cloud是微服務(wù)開發(fā)的一整套解決方案,采用Spring Cloud開發(fā),每個項目依然是使用Spring Boot;

Spring Cloud 與 Spring Boot的兼容版本

Spring Cloud 的整體架構(gòu)

  • Service Provider: 暴露服務(wù)的服務(wù)提供方。

  • Service Consumer:調(diào)用遠程服務(wù)的服務(wù)消費方。

  • EureKa Server: 服務(wù)注冊中心和服務(wù)發(fā)現(xiàn)中心。

服務(wù)消費方直接調(diào)用服務(wù)提供方

我們知道,Springcloud 構(gòu)建微服務(wù)是基于 SpringBoot 開發(fā)的。

1、創(chuàng)建一個 SpringBoot 工程,并且添加 SpringBoot 的相關(guān)依賴;

2、創(chuàng)建服務(wù)提供者的訪問方法,也就是后續(xù)消費者如何訪問提供者;

Spring Cloud 是基于 rest 的訪問,所以我們添加一個 Controller,在該Controller 中提供一個訪問入口

3、啟動運行該 SpringBoot 程序,訪問該 controller;


?服務(wù)消費者也是一個 SpringBoot 項目,服務(wù)消費者主要用來消費服務(wù)提供者提供的服務(wù);

1、創(chuàng)建一個 SpringBoot 工程,并且添加 SpringBoot 的相關(guān)依賴;

2、開發(fā)一個消費者方法,去消費服務(wù)提供者提供的服務(wù),這個消費者方法也是

一個 Controller:?

3、啟動該 SpringBoot 程序,測試服務(wù)消費者調(diào)用服務(wù)提供者;?

最后,奉上springcloud視頻教程,視頻學(xué)習(xí)效果更佳,走過路過別忘素質(zhì)三連哦~~

微服務(wù)架構(gòu)Springcloud詳解-初識springcloud的評論 (共 條)

分享到微博請遵守國家法律
林西县| 措美县| 老河口市| 应城市| 杭州市| 梅州市| 常熟市| 巴里| 湖州市| 尼玛县| 乐平市| 长顺县| 蓬莱市| 天等县| 夏河县| 肥乡县| 扎囊县| 京山县| 尤溪县| 连江县| 岢岚县| 肇东市| 太谷县| 岳西县| 南汇区| 土默特左旗| 仙居县| 扶余县| 津市市| 鹤岗市| 靖州| 永平县| 阿合奇县| 延川县| 施秉县| 大方县| 东兰县| 绩溪县| 广平县| 大安市| 白城市|