日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

springcloud 03_SpringCloud概述

發布時間:2024/2/28 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springcloud 03_SpringCloud概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 微服務概述?
  • 業界大牛馬丁.福勒(Martin Fowler) 這樣描述微服務:

    論文網址:

    https://martinfowler.com/articles/microservices.html

    ?

    ?

    就目前而言,對于微服務業界并沒有一個統一的、標準的定義(While there is no precise definition of this architectural style)但通常而言, 微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程序劃分成一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間互相協調、互相配合,為用戶提供最終價值。服務之間采用輕量級的通信機制互相溝通(通常是基于HTTP的RESTful API)。每個服務都圍繞著具體業務進行構建,并且能夠被獨立地部署到生產環境、類生產環境等。另外,應盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進行構建,可以有一個非常輕量級的集中式管理來協調這些服務,可以使用不同的語言來編寫服務,也可以使用不同的數據存儲。

  • 微服務與微服務架構
  • 微服務

    強調的是服務的大小,它關注的是某一個點,是具體解決某一個問題/提供落地對應服務的一個服務應用,狹意的看,可以看作Eclipse或idea里面的一個個微服務工程/或者Module

    微服務架構

    ?

    ?

    微服務架構是一種架構模式,它提倡將單?應?程序劃分成?組?的服務,服務之間互相協調、互相配合,為用戶提供最終價值。每個服務運一在其獨一的進程中,服務與服務間采?輕量級的通信機制互相協作(通常是基于HTTP協議的RESTful API)。每個服務都圍繞著具體業務進一構建,并且能夠被獨?的部署到生產環境、類生產環境等。另外,應當盡量避免統一的、集中式的服務管理機制,對具體的一個服務而言,應根據業務上下文,選擇合適的語言、工具對其進?構建。

    ?

    3、微服務優缺點

    優點

    每個服務足夠內聚,足夠小,代碼容易理解這樣能聚焦一個指定的業務功能或業務需求

    開發簡單、開發效率提高,一個服務可能就是專一的只干一件事。

    微服務能夠被小團隊單獨開發,這個小團隊是2到5人的開發人員組成。

    微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的。

    微服務能使用不同的語言開發。

    易于和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins, Hudson, bamboo 。

    微服務易于被一個開發人員理解,修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值。

    微服務允許你利用融合最新技術。

    微服務只是業務邏輯的代碼,不會和HTML,CSS 或其他界面組件混合。

    每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。

    ?缺點

    開發人員要處理分布式系統的復雜性

    多服務運維難度,隨著服務的增加,運維的壓力也在增大

    系統部署依賴

    服務間通信成本

    數據一致性

    系統集成測試

    性能監控……

    4、微服務技術棧

    微服務條目

    落地技術

    備注

    服務開發

    Springboot、Spring、SpringMVC

    ?

    服務配置與管理

    Netflix公司的Archaius、阿里的Diamond等

    ?

    服務注冊與發現

    Eureka、Consul、Zookeeper

    ?

    服務調用

    Rest、RPC、gRPC

    ?

    服務熔斷器

    Hystrix、Envoy等

    ?

    負載均衡

    Ribbon、Nginx等

    ?

    服務接口調用(客戶端調用服務的簡化工具)

    Feign等

    ?

    消息隊列

    Kafka、RabbitMQ、ActiveMQ等

    ?

    服務配置中心管理

    SpringCloudConfig、Chef等

    ?

    服務路由(API網關)

    Zuul等

    ?

    服務監控

    Zabbix、Nagios、Metrics、Spectator等

    ?

    全鏈路追蹤

    Zipkin,Brave、Dapper等

    ?

    服務部署

    Docker、OpenStack、Kubernetes等

    ?

    數據流操作開發包

    SpringCloud Stream(封裝與Redis,Rabbit、Kafka等發送接收消息)

    ?

    事件消息總線

    Spring Cloud Bus

    ?

    ......

    ?

    ?


    阿里:Dubbo、HSF

    Dubbo(讀音[?d?b??])是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和?[1]??Spring框架無縫集成。

    Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。

    阿里巴巴集團內部使用的分布式服務框架 HSF(High Speed Framework,也有人戲稱“好舒服”)已經被很多技術愛好者所熟知,目前已經支撐著近 2000 多個應用的運行。其對應早期的開源項目 Dubbo(因為某些原因,Dubbo 項目在 2012 年年底,阿里巴巴就停止了對此開源項目的更新),則更是在互聯網領域有著非常高的知名度和廣泛的使用。

    京東:JSF

    JSF(杰夫)是一個高性能的服務框架,特性如下:

    可以進行高效RPC(遠程過程)調用

    有高可用的注冊中心,完備的容災特性

    服務端口同時支持TCP與HTTP協議調用,支持跨語言調用

    支持msgpack、json等多種序列化格式,支持數據壓縮

    提供黑白名單、負載均衡、provider動態分組、動態切換調用分組等服務治理功能

    提供對接口-方法的調用次數、平均耗時等在線監控報表功能

    兼容SAF協議,可以調用SAF1.X接口

    全部模塊均為自主研發,自主設計應用層JSF協議;各模塊功能可控,可擴展性較好

    新浪:Motan

    Motan 是微博技術團隊研發的基于 Java 的輕量級 RPC 框架,已在微博內部大規模應用多年,每天穩定支撐微博上億次的內部調用。Motan 基于微博的高并發和高負載場景優化,成為一套簡單、易用、高可用的 RPC 服務框架。

    當當網:DubboX

    Dubbox 是一個分布式服務框架,其前身是阿里巴巴開源項目Dubbo ,被國內電商及互聯網項目中使用,后期阿里巴巴停止了該項目的維護,當當網便在Dubbo基礎上進行優化,并繼續維護,為了與原有的Dubbo區分,故將其命名為Dubbox。

  • 各微服務框架對比
  • ?

    6、什么是SpringCloud?

    ?

    SpringCloud,基于SpringBoot提供了一套微服務解決方案,包括服務注冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基于NetFlix的開源組件做高度抽象封裝之外,還有一些選型中立的開源組件。

    SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,SpringCloud為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,它們都可以用SpringBoot的開發風格做到一鍵啟動和部署。

    ?

    SpringBoot并沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。

    springCloud是基于SpringBoot的一整套實現微服務的框架。他提供了微服務開發所需的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等組件。最重要的是,跟spring boot框架一起使用的話,會讓你開發微服務架構的云服務非常好的方便。? SpringBoot旨在簡化創建產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能。

    SpringCloud組件架構:

    ?

    ?spring cloud子項目包括:

    Spring Cloud Config:配置管理開發工具包,可以讓你把配置放到遠程服務器,目前支持本地存儲、Git以及Subversion。

    Spring Cloud Bus:事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。

    Spring Cloud Netflix:針對多種Netflix組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

    Netflix Eureka:云端負載均衡,一個基于 REST 的服務,用于定位服務,以實現云端的負載均衡和中間層服務器的故障轉移。

    Netflix Hystrix:容錯管理工具,旨在通過控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。

    Netflix Zuul:邊緣服務工具,是提供動態路由,監控,彈性,安全等的邊緣服務。

    Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。

    Spring Cloud for Cloud Foundry:通過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺。

    Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。

    Spring Cloud Data Flow:大數據操作工具,通過命令行方式操作數據流。

    Spring Cloud Security:安全工具包,為你的應用程序添加安全控制,主要是指OAuth2。

    Spring Cloud Consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫集成。

    Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務注冊和發現。

    Spring Cloud Stream:數據流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。

    Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。

    官網:https://spring.io/projects/spring-cloud

    7、SpringBootSpringCloud的關系

    SpringBoot專注于快速方便的開發單個個體微服務

    SpringCloud是關注全局的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合并管理起來,為各個微服務之間提供,配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等集成服務

    SpringBoot可以離開SpringCloud獨立使用開發項目,但是SpringCloud離不開SpringBoot,屬于依賴的關系.

    SpringBoot專注于快速、方便的開發單個微服務個體,SpringCloud關注全局的服務治理框架。

  • 成熟的互聯網架構
  • ?

  • dubbo與springcloud對比
  • ?

    ?

  • 總結dubbo與cloud
  • 問題:

    曾風靡國內的開源 RPC 服務框架 Dubbo 在重啟維護后,令許多用戶為之雀躍,但同時,也迎來了一些質疑的聲音。互聯網技術發展迅速,Dubbo 是否還能跟上時代?Dubbo 與 Spring Cloud 相比又有何優勢和差異?是否會有相關舉措保證 Dubbo 的后續更新頻率?

    ?

    人物:Dubbo重啟維護開發的劉軍,主要負責人之一

    劉軍,阿里巴巴中間件高級研發工程師,主導了 Dubbo 重啟維護以后的幾個發版計劃,專注于高性能 RPC 框架和微服務相關領域。曾負責網易考拉 RPC 框架的研發及指導在內部使用,參與了服務治理平臺、分布式跟蹤系統、分布式一致性框架等從無到有的設計與開發過程。

    ?

    ?

    ? ?11.SpringCloud能干什么

    1. 服務的注冊與發現(Eureka)

    2. 服務消費者(rest+ribbon)(Feign)

    3. 斷路器(Hystrix)

    4. 路由網關(zuul)

    5. 高可用分布式配置中心(Spring Cloud Config)

    6. 消息總線(Spring Cloud Bus)

    7. 服務鏈路追蹤(Spring Cloud Sleuth)

    8. 斷路器監控(Hystrix Dashboard)

    9. 斷路器聚合監控(Hystrix Turbine)

    10. 服務注冊(consul)

    12、springcloud相關資料?

    官網:https://spring.io/projects/spring-cloud

    參考資料:https://www.springcloud.cc/spring-cloud-netflix.html

    本次開發API說明:

    Springcloud中文社區:http://www.springcloud.cn

    Springcloud中文網:https://www.springcloud.cc

    最大區別:SpringCloud拋棄了Dubbo的RPC通信,采用的是基于HTTP的REST方式。

    嚴格來說,這兩種方式各有優劣。雖然從一定程度上來說,后者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更加合適。

    品牌機與組裝機的區別

    很明顯,Spring Cloud的功能比DUBBO更加強大,涵蓋面更廣,而且作為Spring的拳頭項目,它也能夠與Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring項目完美融合,這些對于微服務而言是至關重要的。使用Dubbo構建的微服務架構就像組裝電腦,各環節我們的選擇自由度很高,但是最終結果很有可能因為一條內存質量不行就點不亮了,總是讓人不怎么放心,但是如果你是一名高手,那這些都不是問題;而Spring Cloud就像品牌機,在Spring Source的整合下,做了大量的兼容性測試,保證了機器擁有更高的穩定性,但是如果要在使用非原裝組件外的東西,就需要對其基礎有足夠的了解。

    社區支持與更新力度

    最為重要的是,DUBBO停止了5年左右的更新,雖然2017.7重啟了。對于技術發展的新需求,需要由開發者自行拓展升級(比如當當網弄出了DubboX),這對于很多想要采用微服務架構的中小軟件組織,顯然是不太合適的,中小公司沒有這么強大的技術能力去修改Dubbo源碼+周邊的一整套解決方案,并不是每一個公司都有阿里的大牛+真實的線上生產環境測試過。

    ?

    ?

    13、springcloud版本

    1.版本名組成

    SpringCloud由于是一系列框架組合,為了避免與包含的自框架版本產生混淆,采用倫敦地鐵站的名稱作為版本名,形式為版本名+里程碑號。例如Finchley.M9其中Finchley是版本號,M9就是里程碑版本。

    2.SpringBoot和SpringCloud的版本對應

    Spring Boot ?? Spring Cloud

    1.2.x ????? ????Angel版本

    1.3.x ????????Brixton版本

    1.4.x Camden版本

    1.5.x Dalston版本、Edgware版本

    2.0.x Finchley版本

    總結

    以上是生活随笔為你收集整理的springcloud 03_SpringCloud概述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。