過濾器閘道器整合類 (sentinel | 自定義限流預設返回格式 | 自定義api分組限流)
在專案中右鍵新建模組,作為閘道器的模組
!--gateway閘道器--
>
org.springframework.cloud<
/groupid>
spring-cloud-starter-gateway<
/artifactid>
<
/dependency>
<
!--nacos客戶端--
>
com.alibaba.cloud<
/groupid>
spring-cloud-starter-alibaba-nacos-discovery<
/artifactid>
<
/dependency>
org.projectlombok<
/groupid>
lombok<
/artifactid>
<
/dependency>
com.alibaba.csp<
/groupid>
sentinel-spring-cloud-gateway-adapter<
/artifactid>
<
/dependency>
server
:port
:9000
spring::
name
: api-gateway
cloud
:nacos
:discovery
:server-addr
: localhost:
8848
gateway
:#自定義路由規則
routes:-
id: product_route
uri: lb://product-service
predicates
:- path=/product-serv/**
filters
:- stripprefix=1
-id: order_route
uri: lb://order-service
predicates
:- path=/order-serv/**
filters
:- stripprefix=1
#自定義屬性time
- time=false
discovery
:locator
:enabled
:true
# 讓gateway可以發現nacos中的微服務
/** * 前置邏輯
*/ exchange.
getattributes()
.put
("begintime"
,new
date()
.gettime()
);system.out.
println
("前置操作");
return chain.
filter
(exchange)
.then
(mono.
fromrunnable
(new
runnable()
}));
}};}
@setter
@getter
public
static
class
config
}
@component
public
class
authfilter
implements
globalfilter
return chain.
filter
(exchange);}
}
@configuration
public
class
gatewayconfiguration
// 配置限流的異常處理器
@bean
@order
(ordered.highest_precedence)
public sentinelgatewayblockexceptionhandler sentinelgatewayblockexceptionhandler()
// 初始化乙個限流的過濾器
@bean
@order
(ordered.highest_precedence)
public globalfilter sentinelgatewayfilter()
//增加對商品微服務的 限流
@postconstruct
private
void
initgatewayrules()
// 自定義返回被限流的錯誤
@postconstruct
public
void
initblockhandlers()
};gatewaycallbackmanager.
setblockhandler
(blockrequesthandler);}
//自定義api限流
@postconstruct
private
void
initcustomizedapis()
}); definitions.
add(api1)
; gatewayapidefinitionmanager.
loadapidefinitions
(definitions);}
}
如何正確使用 Spring Cloud? 下
接下來,我們來了解一下 spring cloud 在與 devops 融合方面可以做哪些事情,它是如何讓應用持續交付更加快捷的?我們都知道,devops 打造了一套持續交付的流程,包括 開發 編譯 測試 發布 運營等節點。如何讓應用更順暢地通過上述各個節點呢?spring cloud 可以在每個研發...
spring cloud 使用Hytrix熔斷器
一 和ribbon一起使用 1.在eyreka的客戶端加入依賴 org.springframework.cloud spring cloud starter netflix hystrix 2.1.2.release 在啟動類加上註解 enablehystrix 熔斷器在呼叫服務的介面新增快速失敗執...
SpringCloud的簡單使用
apache dubbo zookeeper springcloud alibaba 服務網格 微服務優點 微服務缺點 微服務技術棧 微服務條目 落地技術 服務開發 springboot,spring,springmvc 服務配置與管理 netflix的archaius,阿里的diamond 服務註...