javascript
springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务
從今天開始,學習SpringCloud微服務全家桶。
一、引導
1、什么是微服務?
2、微服務之間是如何獨立通訊的
3、springCloud和Dubbo有哪些區(qū)別?
4、什么是服務熔斷?什么是服務降級
5、微服務的優(yōu)缺點分別是什么?
6、微服務技術棧有哪些?
7、eureka和zookeeper都可以提供服務注冊與發(fā)現(xiàn)的功能,請說說兩個的區(qū)別?
2、微服務概述
1、微服務與微服務架構是什么
微服務化的核心就是將傳統(tǒng)的一站式應用,根據(jù)業(yè)務拆分成一個一個的服務,徹底地去耦合,每
一個微服務提供單個業(yè)務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的
處理過程,類似進程概念,能夠自行單獨啟動或銷毀,擁有自己獨立的數(shù)據(jù)庫。
但通常而言, 微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃
分成一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間互相協(xié)調、互相配合,
為用戶提供最終價值。服務之間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful
API)。每個服務都圍繞著具體業(yè)務進行構建,并且能夠被獨立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)
境等。另外,應盡量避免統(tǒng)一的、集中式的服務管理機制,對具體的一個服務而言,應根據(jù)業(yè)
務上下文,選擇合適的語言、工具對其進行構建,可以有一個非常輕量級的集中式管理來協(xié)調
這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數(shù)據(jù)存儲。
2、優(yōu)缺點
優(yōu)點
每個服務足夠內(nèi)聚,足夠小,代碼容易理解這樣能聚焦一個指定的業(yè)務功能或業(yè)務需求
開發(fā)簡單、開發(fā)效率提高,一個服務可能就是專一的只干一件事。
微服務能夠被小團隊單獨開發(fā),這個小團隊是2到5人的開發(fā)人員組成。
微服務是松耦合的,是有功能意義的服務,無論是在開發(fā)階段或部署階段都是獨立的。
微服務能使用不同的語言開發(fā)。
易于和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續(xù)集成工具,如Jenkins, Hudson, bamboo 。
微服務易于被一個開發(fā)人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現(xiàn)價值。
微服務允許你利用融合最新技術。
微服務只是業(yè)務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。
每個微服務都有自己的存儲能力,可以有自己的數(shù)據(jù)庫。也可以有統(tǒng)一數(shù)據(jù)庫。
缺點
開發(fā)人員要處理分布式系統(tǒng)的復雜性
多服務運維難度,隨著服務的增加,運維的壓力也在增大
系統(tǒng)部署依賴
服務間通信成本
數(shù)據(jù)一致性
系統(tǒng)集成測試
性能監(jiān)控……
3、微服務技術有哪些
微服務條目落地技術
服務開發(fā)Springboot、Spring、SpringMVC
服務配置與管理Netflix公司的Archaius、阿里的Diamond等
服務注冊與發(fā)現(xiàn)Eureka、Consul、Zookeeper等
服務調用Rest、RPC、gRPC
服務熔斷器Hystrix、Envoy等
負載均衡Ribbon、Nginx等
服務接口調用(客戶端調用服務的簡化工具)Feign等
消息隊列Kafka、RabbitMQ、ActiveMQ等
服務配置中心管理SpringCloudConfig、Chef等
服務路由(API網(wǎng)關)Zuul等
服務監(jiān)控Zabbix、Nagios、Metrics、Spectator等
全鏈路追蹤Zipkin,Brave、Dapper等
服務部署Docker、OpenStack、Kubernetes等
數(shù)據(jù)流操作開發(fā)包SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發(fā)送接收消息)
事件消息總線Spring Cloud Bus
4、SpringCloud入門概述
1、SpringCloud是什么
SpringCloud,基于SpringBoot提供了一套微服務解決方案,包括服務注冊與發(fā)現(xiàn),配置中
心,全鏈路監(jiān)控,服務網(wǎng)關,負載均衡,熔斷器等組件,除了基于NetFlix的開源組件做高度
抽象封裝之外,還有一些選型中立的開源組件。
SpringCloud利用SpringBoot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),
SpringCloud為開發(fā)人員提供了快速構建分布式系統(tǒng)的一些工具,包括配置管理、服務發(fā)現(xiàn)、
斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,它們都可以用
SpringBoot的開發(fā)風格做到一鍵啟動和部署。
SpringBoot并沒有重復制造輪子,它只是將目前各家公司開發(fā)的比較成熟、經(jīng)得起實際考驗
的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理,最
終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包。
SpringCloud=分布式微服務架構下的一站式解決方案,是各個微服務架構落地
技術的集合體,俗稱微服務全家桶
2、SpringCloud和SpringBoot是什么關系
SpringBoot專注于快速方便的開發(fā)單個個體微服務。
SpringCloud是關注全局的微服務協(xié)調整理治理框架,它將SpringBoot開發(fā)的一個個單體微
服務整合并管理起來,為各個微服務之間提供,配置管理、服務發(fā)現(xiàn)、斷路器、路由、微代
理、事件總線、全局鎖、決策競選、分布式會話等等集成服務
SpringBoot可以離開SpringCloud獨立使用開發(fā)項目,但是SpringCloud離不
SpringBoot,屬于依賴的關系.
SpringBoot專注于快速、方便的開發(fā)單個微服務個體,SpringCloud關注全局的服務治理框
架。
3、SpringCloud VS DUBBO對比
這個是從官網(wǎng)上找到的權威數(shù)據(jù)
dubbo的開發(fā)者原話,兩者定位不一樣
4、SpringCloud能干嘛!
1、Distributed/versioned configuration(分布式/版本控制配置)
2、Service registration and discovery(服務注冊與發(fā)現(xiàn))
3、Routing(路由)
4、Service-to-service calls(服務到服務的調用)
5、Load balancing(負載均衡配置)
6、Circuit Breakers(斷路器)
7、Distributed messaging(分布式消息管理)
5、SpringCloud全家桶
6、簡單介紹
服務的注冊與發(fā)現(xiàn)(Eureka)
服務消費者(rest+Ribbon)
服務消費者(Feign)
斷路器(Hystrix)
斷路器監(jiān)控(Hystrix Dashboard)
路由網(wǎng)關(Zuul)
分布式配置中心(Spring Cloud Config)
消息總線(Spring Cloud Bus)
服務鏈路追蹤(Spring Cloud Sleuth)
參考網(wǎng)站:https://springcloud.cc/spring-cloud-dalston.html
http://projects.spring.io/spring-cloud/
這是第一篇,我會寫完SpringCloud全套。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: controller是什么意思_Spri
- 下一篇: python带通配符的字符串匹配_Bas