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

歡迎訪問 生活随笔!

生活随笔

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

javascript

springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程

發布時間:2025/4/16 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網站架構演變過程

傳統架構

傳統的SSH架構,分為三層架構 web控制層、業務邏輯層、數據庫訪問層。

傳統架構也就是單點應用,就是大家在剛開始初學JavaEE技術的時候SSH架構或者SSM架構,業務沒有進行拆分,都寫同一個項目工程里面,一般是適合于個人或者是小團隊開發。

這種架構模式,一旦有一個模塊導致服務不可用,可能會影響整個項目。

分布式架構

分布式架構基于傳統架構演變過來,將傳統的單體項目以項目模塊進行拆分,拆分為會員項目、訂單項目、支付項目、優惠券項目等,從而降低耦合度,這種項目架構模式慢慢開始適合于互聯網公司規模人數開發。

SOA架構

SOA架構代表面向與服務架構,俗稱服務化,通俗的理解為面向與業務邏輯層開發,將共同的業務邏輯抽取出來形成一個服務,提供給其他服務接口進行調用,服務與服務之間調用使用rpc遠程技術。

SOA架構特點:

1.SOA架構中通常使用XML方式實現通訊,在高并發情況下XML比較冗余會帶來極大的影響,所以最后微服務架構中采用JSON替代xml方式

2.SOA架構的底層實現通過WebService和ESB(xml與中間件混合物),Web Service技術是SOA服務化的一種實現方式,WebService底層采用soap協議進行通訊,soap協議就是Http或者是Https通道傳輸XML數據實現的協議。

微服務架構

微服務架構產生的原因

微服務架構基于SOA架構演變過來的

在傳統的WebService架構中有如下問題:

1.依賴中心化服務發現機制

2.使用Soap通訊協議,通常使用XML格式來序列化通訊數據,xml格式非常喜歡重,比較占寬帶傳輸。

3.服務化管理和治理設施不完善

漫談微服務架構

什么是微服務

微服務架是從SOA架構演變過來,比SOA架構粒度會更加精細,讓專業的人去做專業的事情(專注),目的提高效率,每個服務于服務之間互不影響,微服務架構中,每個服務必須獨立部署,互不影響,微服務架構更加體現輕巧、輕量級,是適合于互聯網公司敏捷開發。

微服務架構特征

微服務架構倡導應用程序設計程多個獨立、可配置、可運行和可微服務的子服務。

服務與服務通訊協議采用Http協議,使用restful風格API形式來進行通訊,數據交換格式輕量級json格式通訊,整個傳輸過程中,采用二進制,所以http協議可以跨語言平臺,并且可以和其他不同的語言進行相互的通訊,所以很多開放平臺都采用http協議接口。

微服務架構如何拆分

1.微服務把每一個職責單一功能存放在獨立的服務中

2.每個服務運行在單獨的進程中

3.每個服務有自己獨立數據庫存儲、實際上有自己獨立的緩存、數據庫、消息隊列等資源。

微服務架構與SOA架構區別

1.微服務架構基于 SOA架構 演變過來,繼承 SOA架構的優點,在微服務架構中去除 SOA 架構中的 ESB 消息總線,采用 http+json(restful)進行傳輸。

2.微服務架構比 SOA 架構粒度會更加精細,讓專業的人去做專業的事情(專注),目的提高效率,每個服務于服務之間互不影響,微服務架構中,每個服務必須獨立部署,微服務架構更加輕巧,輕量級。

3.SOA 架構中可能數據庫存儲會發生共享,微服務強調獨每個服務都是單獨數據庫,保證每個服務于服務之間互不影響。

4.項目體現特征微服務架構比 SOA 架構更加適合與互聯網公司敏捷開發、快速迭代版本,因為粒度非常精細。

SpringCloud微服務框架

為什么選擇SpringCloud

因為SpringCloud出現,對微服務技術提供了非常大的幫助,因為SpringCloud 提供了一套完整的微服務解決方案,不像其他框架只是解決了微服務中某個問題。

服務治理: 阿里巴巴開源的Dubbo和當當網在其基礎上擴展的Dubbox、Eureka、Apache 的Consul等

分布式配置中心: 百度的disconf、Netfix的Archaius、360的QConf、SpringCloud、攜程的阿波羅等。

分布式任務:xxl-job、elastic-job、springcloud的task等。

服務跟蹤:京東的hyra、springcloud的sleuth等

SpringCloud簡介

SpringCloud是基于SpringBoot基礎之上開發的微服務框架,SpringCloud是一套目前非常完整的微服務解決方案框架,其內容包含服務治理、注冊中心、配置管理、斷路器、智能路由、微代理、控制總線、全局鎖、分布式會話等。

SpringCloud包含眾多的子項目

SpringCloud config 分布式配置中心

SpringCloud netflix 核心組件

Eureka:服務治理 注冊中心

Hystrix:服務保護框架

Ribbon:客戶端負載均衡器

Feign:基于ribbon和hystrix的聲明式服務調用組件

Zuul: 網關組件,提供智能路由、訪問過濾等功能。

服務治理SpringCloud Eureka

什么是服務治理

在傳統rpc遠程調用中,服務與服務依賴關系,管理比較復雜,所以需要使用服務治理,管理服務與服務之間依賴關系,可以實現服務調用、負載均衡、容錯等,實現服務發現與注冊。

服務注冊與發現

在服務注冊與發現中,有一個注冊中心,當服務器啟動的時候,會把當前自己服務器的信息 比如 服務地址通訊地址等以別名方式注冊到注冊中心上。

另一方(消費者|服務提供者),以該別名的方式去注冊中心上獲取到實際的服務通訊地址,讓后在實現本地rpc調用遠程。

搭建注冊中心

常用注冊中心框架

注冊中心環境搭建

Maven依賴信息

org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEorg.springframework.cloudspring-cloud-dependenciesFinchley.M7pomimportorg.springframework.cloudspring-cloud-starter-netflix-eureka-serverspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

application.yml

###服務端口號server: port: 8100###eureka 基本信息配置eureka: instance: ###注冊到eurekaip地址 hostname: 127.0.0.1 client: serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/###因為自己是為注冊中心,不需要自己注冊自己 register-with-eureka: false###因為自己是為注冊中心,不需要檢索服務 fetch-registry: false

啟動Eureka服務

@EnableEurekaServer@SpringBootApplicationpublic class AppEureka {public static void main(String[] args) {SpringApplication.run(AppEureka.class, args);}}

@EnableEurekaServer作用:開啟eurekaServer

注冊服務提供者

項目案例:實現會員服務(提供者)springcloud-2.0-member調用訂單服務(消費者)springcloud-2.0-order

Maven依賴信息

org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEorg.springframework.cloudspring-cloud-dependenciesFinchley.M7pomimportorg.springframework.bootspring-boot-starter-weborg.springframework.cloudspring-cloud-starter-netflix-eureka-clientspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

application.yml

###服務啟動端口號

server:

port: 8000

###服務名稱(服務注冊到eureka名稱)

spring:

application:

name: app-itmayiedu-member

###服務注冊到eureka地址

eureka:

client:

service-url:

defaultZone: http://localhost:8100/eureka

###因為該應用為注冊中心,不會注冊自己

register-with-eureka: true

###是否需要從eureka上獲取注冊信息

fetch-registry: true

@RestController

public class MemberController {

@RequestMapping("/getMember")

public String getMember() {

return "this is getMember";

}

}

啟動會員服務

@SpringBootApplication@EnableEurekaClientpublic class AppMember {public static void main(String[] args) {SpringApplication.run(AppMember.class, args);}}

可以看到會員服務成功注冊到eureka服務上

服務消費者

Maven依賴信息

org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEorg.springframework.cloudspring-cloud-dependenciesFinchley.M7pomimportorg.springframework.bootspring-boot-starter-weborg.springframework.cloudspring-cloud-starter-netflix-eureka-clientspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

Application.yml配置

###服務啟動端口號server: port: 8001###服務名稱(服務注冊到eureka名稱) spring: application: name: app-itmayiedu-order###服務注冊到eureka地址eureka: client: service-url: defaultZone: http://localhost:8100/eureka ###因為該應用為注冊中心,不會注冊自己 register-with-eureka: true###是否需要從eureka上獲取注冊信息 fetch-registry: true

使用rest方式調用服務

@RestControllerpublic class OrderController {@Autowiredprivate RestTemplate restTemplate;@RequestMapping("/getorder")public String getOrder() {// order 使用rpc 遠程調用技術 調用 會員服務String memberUrl = "http://app-itmayiedu-member/getMember";String result = restTemplate.getForObject(memberUrl, String.class);System.out.println("會員服務調用訂單服務,result:" + result);return result;}}

啟動消費者服務

@SpringBootApplication@EnableEurekaClientpublic class AppOrder {public static void main(String[] args) {SpringApplication.run(AppOrder.class, args);}@Bean@LoadBalancedRestTemplate restTemplate() {return new RestTemplate();}}

@LoadBalanced就能讓這個RestTemplate在請求時擁有客戶端負載均衡的能力

高可用注冊中心

在微服務中,注冊中心非常核心,可以實現服務治理,如果一旦注冊出現故障的時候,可能會導致整個微服務無法訪問,在這時候就需要對注冊中心實現高可用集群模式。

Eureka高可用原理

默認情況下Eureka是讓服務注冊中心,不注冊自己

###因為該應用為注冊中心,不會注冊自己 register-with-eureka: true###不需要去注冊中心上檢索服務 fetch-registry: true

Eureka高可用實際上將自己作為服務向其他服務注冊中心注冊自己,這樣就可以形成一組相互注冊的服務注冊中心,從而實現服務清單的互相同步,達到高可用效果。

Eureka集群環境搭建

Eureka01配置

###服務端口號server: port: 8100###eureka 基本信息配置spring: application: name: eureka-servereureka: instance: ###注冊到eurekaip地址 hostname: 127.0.0.1 client: serviceUrl: defaultZone: http://127.0.0.1:8200/eureka/###因為自己是為注冊中心,不需要自己注冊自己 register-with-eureka: true###因為自己是為注冊中心,不需要檢索服務 fetch-registry: true

Eureka02配置

###服務端口號server: port: 8200###eureka 基本信息配置spring: application: name: eureka-servereureka: instance: ###注冊到eurekaip地址 hostname: 127.0.0.1 client: serviceUrl: defaultZone: http://127.0.0.1:8100/eureka/###因為自己是為注冊中心,不需要自己注冊自己 register-with-eureka: true###因為自己是為注冊中心,不需要檢索服務 fetch-registry: true

客戶端集成Eureka集群

server: port: 8000spring: application: name: app-itmayiedu-member#eureka:# client:# service-url:# defaultZone: http://localhost:8100/eureka###集群地址eureka: client: service-url: defaultZone: http://localhost:8100/eureka,http://localhost:8200/eureka register-with-eureka: true fetch-registry: true

Maven配置

org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEorg.springframework.cloudspring-cloud-dependenciesFinchley.M7pomimportorg.springframework.cloudspring-cloud-starter-netflix-eureka-serverspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

使用Consul來替換Eureka

Consul簡介

Consul 是一套開源的分布式服務發現和配置管理系統,由 HashiCorp 公司用 Go 語言開發。

它具有很多優點。包括: 基于 raft 協議,比較簡潔; 支持健康檢查, 同時支持 HTTP 和 DNS 協議 支持跨數據中心的 WAN 集群 提供圖形界面 跨平臺,支持 Linux、Mac、Windows

Consul 下載地址https://springcloud.cc/spring-cloud-consul.html

Consul環境搭建

官方下載地址下載window版,解壓得到一個可執行文件。

設置環境變量,讓我們直接在cmd里可直接使用consul使命。在path后面添加consul所在目錄例如D:softconsul_1.1.0_windows_amd64

啟動consul命

consul agent -dev -ui -node=cy

-dev開發服務器模式啟動,-node結點名為cy,-ui可以用界面訪問,默認能訪問。

測試訪問地址:http://localhost:8500

Consul客戶端

Maven依賴信息

org.springframework.bootspring-boot-starter-parent2.0.1.RELEASEorg.springframework.cloudspring-cloud-dependenciesFinchley.M7pomimportorg.springframework.bootspring-boot-starter-weborg.springframework.cloudspring-cloud-starter-consul-discoveryspring-milestonesSpring Milestoneshttps://repo.spring.io/libs-milestonefalse

客戶端配置文件

###eureka 服務端口號server: port: 8502spring: application: name: consul-order####consul注冊中心地址 cloud: consul: host: localhost port: 8500 discovery: hostname: 192.168.18.220

總結

以上是生活随笔為你收集整理的springcloud全局过滤_微服务技术SpringCloud 互联网网站架构演变过程的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩成人精品视频 | 中文字幕第315页 | 亚洲久久色 | 天海翼中文字幕 | 野外一级片 | 欧美最猛黑人xxxx | 在线精品免费视频 | 欧美在线一区视频 | 亚洲永久免费 | 午夜在线视频 | 亚洲色图欧美日韩 | 波多野结衣av一区二区全免费观看 | 亚洲福利电影 | 国产综合精品视频 | 日韩成人免费在线视频 | 成人免费一区二区三区 | 精品无码久久久久国产 | 国产av天堂无码一区二区三区 | 国产高清日韩 | h在线免费观看 | 国产精品一区二区在线播放 | 国产你懂 | 9l视频自拍蝌蚪9l视频 | 日本一本高清视频 | 欧美成年网站 | 亚洲系列中文字幕 | 国产亚洲精品久久久久久777 | 黑人av | 久久精品a亚洲国产v高清不卡 | 亚洲一区二区三区日韩 | 99爱视频在线 | 在线欧美日韩国产 | 1024视频污 | 超碰人人擦 | 91麻豆精品国产午夜天堂 | 免费www xxx | 青青草一区二区三区 | 欧美夜夜骑 | 日本亲与子乱人妻hd | 国产精品免费看 | 99在线精品视频免费观看20 | 97人妻精品视频一区 | 青草视频免费在线观看 | 菲律宾黄色片 | 国偷自产视频一区二区久 | 日本视频在线免费 | 精品综合久久久久 | 一级黄色在线 | 久久精品免费在线 | 免费在线观看亚洲 | 中文字幕在线观看高清 | 黄色在线网站 | 中文字幕在线观看视频www | av观看免费在线 | 日本少妇xxxx | 国产精品69久久久久孕妇欧美 | 亚洲三级影视 | 欧美区视频 | 久久97久久97精品免视看 | 精产国品一区二区三区 | 我和我的太阳泰剧在线观看泰剧 | 亚洲在线观看一区 | 在线观看av黄色 | 强侵犯の奶水授乳羞羞漫虐 | 天堂色播 | 午夜性激情| 人人人干| 美女18毛片| h在线观看视频 | 五月激情站 | 日本久久久久久 | 久久精品亚洲a | 污污网站在线观看 | 91调教打屁股xxxx网站 | 性高湖久久久久久久久免费 | av激情久久 | 一本一道久久a久久精品蜜桃 | 91免费官网| 插插插综合 | 视频在线观看 | 日韩三级国产精品 | 欧美色图另类 | 99re在线视频免费观看 | 国产精品99精品 | 狂野欧美性猛交免费视频 | 欧美日韩综合在线 | 毛片视频软件 | 日韩电影在线一区二区 | 国内精品久久久久久久 | 久久久久999| 91精产国品一二三区在线观看 | 国产成人无码aa精品一区 | 巨乳美女在线 | 欧美色欧美色 | 1024精品一区二区三区日韩 | 日本激情久久 | 日韩精品一区二区三区视频在线观看 | 九九九在线| 欧美一区二区三区在线观看视频 |