Spring - Spring Boot Spring Cloud

Spring -> Spring Boot > Spring Cloud

這幾天剛剛上班,公司用的是Spring Cloud,接觸不多。我得趕快學起來。

想學習就必須得知道什么是微服務,什么是Spring Boot,什么是Spring Cloud,以及兩者之間有什么關系?

什么是微服務?

簡而言之,微服務架構風格是一種將單個應用程序作為一套小型服務開發的方法,每種應用程序都在自己的進程中運行,并與輕量級機制(通常是HTTP資源API)進行通信。 這些服務是圍繞業務功能構建的,可以通過全自動部署機制獨立部署。 這些服務的集中管理最少,可以用不同的編程語言編寫,并使用不同的數據存儲技術。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在所有情況下,每個任務代表著一個小的業務能力。

微服務的一些常見誤解

在同一范疇內比較才有意義:

微服務架構 vs. SOA – 兩者都是架構風格范疇,但其關注領域與涉及范圍不同。SOA更關注企業規模范圍,微服務架構則更關注應用規模范圍。

微服務組件 vs. 服務組件 – 兩者都是描述業務功能的具體實現,其區別在于粒度不同,此外還有在可管理性、靈活性上的差異。

概念混淆的不恰當比較

微服務 vs. SOA – 不恰當的比較。微服務是組件范疇,而SOA是一種架構設計風格。因此應該比較的是微服務架構與SOA。

微服務 vs. API – 不恰當的比較。 API是接口,是業務功能暴露的一種機制。微服務架構是用于實施業務功能的組件架構。因此直接比較它們是沒有意義的。

微服務 vs. 服務– 不恰當的比較。“服務”在不同的場景下有不同的含義,需要進一步澄清其描述的語境,是指服務實施、服務暴露、服務定義還是其他?微服務亦是如此,需要有特定語境才可判斷比較是否有意義。

什么是Spring Boot?

首先得知道一點,Spring Boot 不是為了取代 Spring ,Spring Boot 基于 Spring 開發,是為了讓人們更容易的使用 Spring。

Spring Boot簡化了基于Spring的應用開發,通過少量的代碼就能創建一個獨立的、產品級別的Spring應用。 Spring Boot為Spring平臺及第三方庫提供開箱即用的設置,這樣你就可以有條不紊地開始。多數Spring Boot應用只需要很少的Spring配置。

Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理解,就是Spring Boot其實不是什么新的框架,它默認配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring Boot整合了所有的框架(不知道這樣比喻是否合適)。

Spring Boot的核心思想就是約定大于配置,一切自動完成。采用Spring Boot可以大大的簡化你的開發模式,所有你想集成的常用框架,它都有對應的組件支持;

什么是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。

微服務是可以獨立部署、水平擴展、獨立訪問(或者有獨立的數據庫)的服務單元,Spring Cloud就是這些微服務的大管家,采用了微服務這種架構之后,項目的數量會非常多,Spring Cloud做為大管家就需要提供各種方案來維護整個生態。

Spring Cloud就是一套分布式服務治理的框架,既然它是一套服務治理的框架,那么它本身不會提供具體功能性的操作,更專注于服務之間的通訊、熔斷、監控等。因此就需要很多的組件來支持一套功能

Spring Boot和Spring Cloud的關系
Spring Boot 是 Spring 的一套快速配置腳手架,可以基于Spring Boot 快速開發單個微服務,Spring Cloud是一個基于Spring Boot實現的云應用開發工具;Spring Boot專注于快速、方便集成的單個微服務個體,Spring Cloud關注全局的服務治理框架;Spring Boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來實現,可以不基于Spring Boot嗎?不可以。

Spring Boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring Boot,屬于依賴的關系。

Spring -> Spring Boot > Spring Cloud

歡迎大家關注公眾號,不定時干貨,只做有價值的輸出

作者:Dawnzhang
出處:https://www.cnblogs.com/clwydjgs/
版權:本文版權歸作者
轉載:歡迎轉載,但未經作者同意,必須保留此段聲明;必須在文章中給出原文連接;否則必究法律責任

轉載于:https://blog.51cto.com/13681587/2306610

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言 · 前10名

算法提高 前10名 時間限制:1.0s 內存限制:256.0MB問題描述數據很多,但我們經常只取前幾名,比如奧運只取前3名。現在我們有n個數據,請按從大到小的順序,輸出前10個名數據。輸入格式兩行。第一行一個整數n…

ssacanf\Sprintf格式化字符串

一、sscanf sscanf() - 從一個  int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存儲的數據 format 格式控制字符串 argument 選擇性設定字符串 sscanf會從buffer里讀進數據,依照argument的設定將數據寫回。字符串中讀進與指定格式相…

防火墻規則

1、iptables -t -L -n -t指定表格 -L 顯示目前表格的規則 -n 數字顯示2、iptables-save 以命令方式顯示規則3、清除清空filter從頭制定規則 ipatables -F 清除已經定義 iptables -X 清除自定義鏈 iptables -z 清除鏈統計和計數4、設定默認規則,當所有規則不匹…

JAVA中循環刪除list中元素的方法總結

印象中循環刪除list中的元素使用for循環的方式是有問題的,但是可以使用增強的for循環,然后今天在使用時發現報錯了,然后去科普了一下,再然后發現這是一個誤區。下面就來講一講。。伸手黨可直接跳至文末。看總結。。 JAVA中循環遍歷…

直流有刷電機與無刷電機的區別

首先介紹有刷電機與無刷電機工作原理,最后從調速方式及性能差異這兩個方面詳細的闡述了有刷電機與無刷電機的區別。 有刷電機與無刷電機工作原理 1、有刷電機 電機工作時,線圈和換向器旋轉,磁鋼和碳刷不轉,線圈電流方向的交替變化…

MapReduce詳解

MapReduce簡介 MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想。 MapReduce極大地方便了編…

JavaScriptBreak 語句 continue 語句

break 語句用于跳出循環。 continue 用于跳過循環中的一個迭代。 Break 語句 我們已經在本教程之前的章節中見到過 break 語句。它用于跳出 switch() 語句。 break 語句可用于跳出循環。 continue 語句跳出循環后,會繼續執行該循環之后的代碼(如果有的話…

kernel mtd 分區與UBOOT 分區的理解

今天做內核移植,準備添加NAND flash的驅動,做到MTD分區時,想起在一本書上看到的一句話,說的是分區時每個區之間沒有間隙,前一個區的結束地址是后一個區的起始地址。可是當我看我的開發板的教程時,分區如下&…

運放的主要參數詳細介紹

1. 引言 運放的作用是調節和放大模擬信號,它是用途十分廣泛的器件,接入適當的反饋網絡,可用作精密的交流和直流放大器、有源濾波器濾波器、振蕩器振蕩器及電壓比較器。其應用領域包括但不限制通訊、電子、汽車、工業檢測等等,并將…

FastDFS 文件上傳工具類

FastDFS文件上傳工具類 import org.csource.common.NameValuePair;import org.csource.fastdfs.ClientGlobal;import org.csource.fastdfs.StorageClient1;import org.csource.fastdfs.StorageServer;import org.csource.fastdfs.TrackerClient;import org.csource.fastdfs.Tra…

MOS管的主要參數與重要特性

雙極性晶體管:NPN和PNP管; 單極性晶體管:場效應管(MOSFET和JFET); MOS管相對三極管具有速度快、輸入阻抗高、噪聲低、動態范圍大、功耗小、容易集成等優點。 下面總結下其主要參數與重要特性&#xff0c…

【Codeforces Round #430 (Div. 2) B】Gleb And Pizza

【鏈接】點擊打開鏈接 【題意】 在這里寫題意【題解】 根據圓心到原點的距離這個東西判斷一下圓在不在那個環里面就好【錯的次數】 0【反思】 在這了寫反思【代碼】 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #…

垂直居中方法總結

<style>#box{position: absolute;margin: auto;top:0px;right: 0px;bottom: 0px;left: 0px;width: 100%;height: 30%;background-color: red;text-align: center;} </style> <body><div id"box"><h1>文字居中</h1></div> …

NAND 壞塊管理

NAND的操作管理方式 NAND FLASH的管理方式&#xff1a;以三星FLASH為例&#xff0c;一片Nand flash為一個設備(device)&#xff0c;1 (Device) xxxx (Blocks)&#xff0c;1 (Block) xxxx (Pages)&#xff0c;1(Page) 528 (Bytes) 數據塊大小(512Bytes) OOB 塊大小(16Bytes&…

js備忘錄模式——實現分頁點擊已經請求過上一頁的數據(讀js設計模式)

例子&#xff1a;新聞數據實現分頁||點擊下一頁后又點擊上一頁后不用再次請求數據&#xff0c;避免資源浪費&#xff0c;網速不好&#xff0c;用戶體驗效果差 備忘錄模式&#xff1a;在不破壞對象的封裝性的前提下&#xff0c;在對象之外捕獲并保存該對象內部的狀態以方便日后對…

運放的典型電路舉例與計算仿真

運放電路的計算&#xff0c;通過記各種公式很難記住&#xff0c;但是掌握其兩個重要概念&#xff0c;所有計算均可迎刃而解。 那就是運放的兩個重要特性&#xff1a; 虛斷&#xff1a;運放本質特性&#xff0c;輸入阻抗大&#xff0c;兩個輸入端視為等效開路&#xff1b; 虛…

【SPOJ 694】Distinct Substrings (更直接的求法)

【鏈接】h在這里寫鏈接 【題意】 接上一篇文章【題解】 一個字符串所有不同的子串的個數∑(len-sa[i]-height[i])【錯的次數】 0【反思】 在這了寫反思【代碼】 #include<bits/stdc.h> using namespace std;const int N 2e3; const int MAX_CHAR 300;//每個數字的最大…

HTML-錨點

<!DOCTYPE html> <html> <head lang"en"> <meta charset"UTF-8"> <title>錨點</title> <style> .box1,.box2{ height: 600px; border:1px solid; } </style> </head> <body> <a h…

/dev/mtdN和/dev/mtdblockN的區別

1、/dev/mtdn是linux中的MTD架構中&#xff0c;系統自己實現的mtd分區所對應的字符設備&#xff0c;其里面添加了一些ioctl&#xff0c;支持很多命令&#xff0c;如MEMGETINFO&#xff0c;MEMERASE等。 而mtd-util中的flash_eraseall等工具&#xff0c;就是以這些ioctl為基礎而…

#define GPBCON (*(volatile unsigned *)0x56000010) 的理解

2019獨角獸企業重金招聘Python工程師標準>>> 對于不同的計算機體系結構&#xff0c;設備可能是端口映射&#xff0c;也可能是內存映射的。如果系統結構支持獨立的IO地址空間&#xff0c;并且是端口映射&#xff0c;就必須使用匯編語言完成實際對設備的控制&#xff…