Spring Cloud Alibaba(四)--Gateway與Sentinel
1、這次主要是整合了Gateway和Sentinel,目前的呼叫鏈路是:
個人理解:
- 對外提供的介面統統走閘道器,如果是內部系統呼叫,則沒必要走閘道器,直接通過RPC進行呼叫
- service A可以呼叫 dao B,當然也可以直接呼叫 Service B來達到目的。直接呼叫dao B的原因前面的文章裡解釋過,問題在於是否可以直接呼叫Service B。之前看過孫玄的視訊,不建議service橫向呼叫,可以在service和dao之前再提取一層公共服務層,這樣就避免了橫向呼叫。他的原則是隻能從上往下呼叫。不過個人解決這個公共層其實很難提取出來,因為界限很模糊,實現起來費腦。我覺得直接橫向呼叫問題也不大,就像我們在做單體架構程式時,有時也會在相互平臺的service之間進行呼叫,減少程式碼複寫的情況。如果是簡單的互動介面可以直接呼叫dao,如果是複雜的業務邏輯,service B已經實現了,而且業務界限上也屬於service B,則橫向呼叫也合理。如果提取公共的服務介面層來避免橫向呼叫,那麼有個問題就是如果這個公共服務層提取的是一些和業務邏輯關係不太的服務還可以操作,如果業務本身就是屬於service B,那麼放到公共層也不太合理。(有更好的建議歡迎留言)
2、新增的依賴檔案為:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!--# 該依賴提供了sentinel對spring cloud gateway框架的適配-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-spring-cloud-gateway-adapter</artifactId>
</dependency>
<!--# 連線sentinel控制檯-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
</dependency>
3、在Gateway與Sentile整合的時候主要新增的配置檔案為:
sentinel:
transport:
#配置Sentin dashboard地址
dashboard: localhost:8080
# 預設8719埠,假如被佔用了會自動從8719埠+1進行掃描,直到找到未被佔用的 埠
port: 8719
gateway:
routes:
- id: provider
uri: lb://iot-provider
predicates:
- Path=/api/provider/**
filters:
- RewritePath=/api/provider/(?<segment>.*),/$\{segment}
- sentinel的Dashboard的服務地址
- gateway的路由規則
4、如果監控controller介面,則只需要加上@SentinelResource(value="supplier-list")註解即可,同樣service方法也可以。
4、如果使用sentinel監控dubbo介面的呼叫,新增以下依賴即可:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-dubbo-adapter</artifactId>
</dependency>
程式碼連線 https://github.com/buff0000/iot tag:v0.0.4
相關文章
- Spring Cloud Alibaba SentinelSpringCloud
- Spring Cloud Alibaba元件之SentinelSpringCloud元件
- Spring Cloud Alibaba(9)---Sentinel概述SpringCloud
- Spring-Cloud-Alibaba之SentinelSpringCloud
- Spring Cloud Alibaba:Sentinel實現熔斷與限流SpringCloud
- Spring Cloud Alibaba教程:Sentinel的使用SpringCloud
- 阿里Sentinel支援Spring Cloud Gateway啦阿里SpringCloudGateway
- Spring Cloud Alibaba - Sentinel入門案例(四)(熱點規則 )SpringCloud
- [Spring-Cloud-Alibaba] Sentinel 規則持久化SpringCloud持久化
- Spring Cloud Alibaba(11)---Sentinel+Nacos持久化SpringCloud持久化
- Spring Cloud Alibaba系列(四)使用gateway作為服務閘道器SpringCloudGateway
- Spring Cloud Alibaba | Sentinel: 服務限流基礎篇SpringCloud
- Spring Cloud Alibaba | Sentinel: 服務限流高階篇SpringCloud
- Spring Cloud Alibaba(10)---Sentinel控制檯搭建+整合SpringCloudAlibabaSpringCloudGC
- 當Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleuth會擦出怎樣的火花SpringCloud
- Spring Cloud Alibaba系列——Sentinel降級規則簡介與實踐SpringCloud
- Spring Cloud Alibaba Sentinel 主要原理和核心類介紹SpringCloud
- Spring Cloud Alibaba系列(六)sentinel的實際應用SpringCloud
- 9.Spring Cloud Alibaba Sentinel流控熔斷元件SpringCloud元件
- Spring Cloud Alibaba基礎教程:使用Sentinel實現介面限流SpringCloud
- spring cloud alibaba系列(二)Sentinel應用的限流管理SpringCloud
- 記一次spring cloud alibaba+Sentinel監控整合SpringCloud
- Spring Cloud Gateway 整合阿里 Sentinel閘道器限流實戰!SpringCloudGateway阿里
- Spring Cloud Alibaba基礎教程:Sentinel使用Nacos儲存規則SpringCloud
- Spring Cloud Alibaba系列(五)sentinel實現服務限流降級SpringCloud
- Spring Cloud Alibaba基礎教程:Sentinel使用Apollo儲存規則SpringCloud
- spring-cloud-kubernetes與SpringCloud GatewaySpringCloudGCGateway
- Spring Cloud Alibaba | Sentinel: 分散式系統的流量防衛兵初探SpringCloud分散式
- Spring Cloud Alibaba生態探索:Dubbo、Nacos及Sentinel的完美結合SpringCloud
- Spring Cloud Alibaba基礎教程:Sentinel Dashboard同步Apollo儲存規則SpringCloud
- Spring Cloud Alibaba實戰(七) - Gateway搭配Nacos實現動態路由SpringCloudGateway路由
- Spring Cloud Alibaba SeataSpringCloud
- Spring Cloud Gateway 深入SpringCloudGateway
- Spring cloud 之GatewaySpringCloudGateway
- Spring Cloud Alibaba基礎教程:Sentinel Dashboard中修改規則同步到NacosSpringCloud
- spring cloud 和 阿里微服務spring cloud AlibabaSpringCloud阿里微服務
- SpringCloud Alibaba(二) - Sentinel,整合OpenFeign,GateWay服務閘道器SpringGCCloudGateway
- Spring Cloud Alibaba之NacosSpringCloud