本篇內(nèi)容主要講解“搭建spring cloud alibaba微服務(wù)GetWay的方法步驟”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“搭建spring cloud alibaba微服務(wù)GetWay的方法步驟”吧!
創(chuàng)新互聯(lián)公司服務(wù)項目包括蚌山網(wǎng)站建設(shè)、蚌山網(wǎng)站制作、蚌山網(wǎng)頁制作以及蚌山網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,蚌山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到蚌山省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
1.GateWay是什么
概述
Cloud全家桶中有個很重要的組件就是網(wǎng)關(guān),在1.x版本中都是采用的Zuul網(wǎng)關(guān);
但在2.x版本中,zuul的升級一直跳票,SpringCloud最后自己研發(fā)了一個網(wǎng)關(guān)替代Zuul,那就是SpringCloud Gateway—句話:gateway是原zuul1.x版的替代
Gateway是在Spring生態(tài)系統(tǒng)之上構(gòu)建的API網(wǎng)關(guān)服務(wù),基于Spring 5,Spring Boot 2和Project Reactor等技術(shù)。
Gateway旨在提供一種簡單而有效的方式來對API進(jìn)行路由,以及提供一些強(qiáng)大的過濾器功能,例如:熔斷、限流、重試等。
SpringCloud Gateway是Spring Cloud的一個全新項目,基于Spring 5.0+Spring Boot 2.0和Project Reactor等技術(shù)開發(fā)的網(wǎng)關(guān),它旨在為微服務(wù)架構(gòu)提供—種簡單有效的統(tǒng)一的API路由管理方式。
SpringCloud Gateway作為Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關(guān),目標(biāo)是替代Zuul,在Spring Cloud 2.0以上版本中,沒有對新版本的Zul 2.0以上最新高性能版本進(jìn)行集成,仍然還是使用的Zuul 1.x非Reactor模式的老版本。而為了提升網(wǎng)關(guān)的性能,SpringCloud Gateway是基于WebFlux框架實現(xiàn)的,而WebFlux框架底層則使用了高性能的Reactor模式通信框架Netty。
Spring Cloud Gateway的目標(biāo)提供統(tǒng)一的路由方式且基于 Filter鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全,監(jiān)控/指標(biāo),和限流。
作用
方向代理
鑒權(quán)
流量控制
熔斷
日志監(jiān)控
微服務(wù)架構(gòu)中網(wǎng)關(guān)的位置
2.配置Getway創(chuàng)建子工程:cloud-getway-getway9527
3.pom文件添加如下:
org.springframework.cloud spring-cloud-starter-gateway com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery com.yxw.springcloud cloud-api-commons ${project.version} org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test
4.yml文件添加如下:
server: port: 9527spring: application:name: cloud-gateway cloud:nacos: discovery:server-addr: localhost:8848gateway: discovery:locator: enabled: true #開啟從注冊中心動態(tài)創(chuàng)建路由的功能,利用微服務(wù)名進(jìn)行路由 routes: - id: payment_routh #payment_routh #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務(wù)名 uri: http://localhost:8001 #匹配后提供服務(wù)的路由地址# uri: lb://cloud-provider-service #匹配后提供服務(wù)的路由地址 predicates: - Path=/payment/get/** #斷言,路徑相匹配的進(jìn)行路由 - id: payment_routh3 #payment_routh #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務(wù)名 uri: http://localhost:8001 #匹配后提供服務(wù)的路由地址# uri: lb://cloud-provider-service #匹配后提供服務(wù)的路由地址 predicates: - Path=/payment/lb/** #斷言,路徑相匹配的進(jìn)行路由
5.啟動類:
@SpringBootApplication@EnableDiscoveryClientpublic class GetwayApplication {public static void main(String[] args) { SpringApplication.run(GetwayApplication.class,args); } }
6.啟動服務(wù)并訪問:http://localhost:9527/payment/get/1
配置動態(tài)路由
在yml修改如下:
server: port: 9527spring: application:name: cloud-gateway cloud:nacos: discovery:server-addr: localhost:8848gateway: discovery:locator: enabled: true #開啟從注冊中心動態(tài)創(chuàng)建路由的功能,利用微服務(wù)名進(jìn)行路由 routes: - id: payment_routh #payment_routh #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務(wù)名# uri: http://localhost:8001 #匹配后提供服務(wù)的路由地址 uri: lb://cloud-provider-service #匹配后提供服務(wù)的路由地址 predicates: - Path=/payment/get/** #斷言,路徑相匹配的進(jìn)行路由 - id: payment_routh3 #payment_routh #路由的ID,沒有固定規(guī)則但要求唯一,簡易配合服務(wù)名# uri: http://localhost:8001 #匹配后提供服務(wù)的路由地址 uri: lb://cloud-provider-service #匹配后提供服務(wù)的路由地址 predicates: - Path=/payment/lb/** #斷言,路徑相匹配的進(jìn)行路由
再次訪問:http://localhost:9527/payment/get/1
需要注意的是uri的協(xié)議為lb,表示啟用Gateway的負(fù)載均衡功能。
lb://serviceName是spring cloud gateway在微服務(wù)中自動為我們創(chuàng)建的負(fù)載均衡uri。
到此,相信大家對“搭建spring cloud alibaba微服務(wù)GetWay的方法步驟”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!