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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

feign返回null_109、Feign的服务降级和Turbine

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 feign返回null_109、Feign的服务降级和Turbine 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、信號量隔離

創建項目

修改pom文件添加hystrix坐標

<dependency>

修改配置文件

spring.application.name=eureka-consumer-ribbon-semaphore server.port=9010eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

修改啟動類

@EnableCircuitBreaker

修改ProductService

@Service

信號量隔離參數

二、線程池隔離和信號量隔離的區別

1.什么情況下,用線程池隔離?

請求并發量大,并且耗時長(請求耗時長一般是計算量大 ,或讀數據庫) : 采用線程隔離策略,這樣的話,可以保證大量的容器(tomcat)線程可用,不會由于服務原因,- -直處于阻塞或等待狀態,快速失敗返回。

2.什么情況下,用信號量隔離?

請求并發量大,并且耗時短(請求耗時短可能是計算量小,或讀緩存) : 采用信號量隔離策略,因為這類服務的返回通常會非常的快,不會占用容器線程太長時間,而且也減少了線程切換的一些開銷,提高了緩存服務的效率。

三、Feign 的雪崩處理

1. Feign 的服務降級處理

創建項目

修改配置文件開啟對 hystrix 的支持

spring.application.name=consumer-feign-fallback server.port=9020#設置服務注冊中心地址,指向另一個注冊中心 eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/#Feign 默認是不開啟 Hystrix 的。默認為:false feign.hystrix.enabled=true

修改 ProductConsumerService

@FeignClient

添加 ProductServiceFallback 類

@Component

修改 ProductController

/**

關閉provider,對服務進行降級返回fallback托底數據

2. 降級后的異常記錄

創建項目

全局配置文件

spring.application.name=consumer-feign-fallbackfactory server.port=9020#設置服務注冊中心地址,指向另一個注冊中心 eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/#Feign 默認是不開啟 Hystrix 的。默認為:false feign.hystrix.enabled=true

添加 ProductServiceFallbackFactory 類

@Component

修改 ProductConsumerService

@FeignClient

四、可視化的數據監控 Hystrix-dashboard

1.可視化的數據監控 Hystrix-dashboard

Hystrix-dashboard 是一款針對 Hystrix 進行實時監控的工具,通過 Hystrix Dashboard 我們可以在直觀地看到各 Hystrix Command 的請求響應時間, 請求成功率等數據。

創建項目

修改 pom 文件添加 Hystrix-dashboard 坐標

<?xml version="1.0" encoding="UTF-8"?>

修改啟動類

@EnableCircuitBreaker

2.Hystrix-dashboard 監控中心

創建項目

修改 pom 文件添加 Hystrix-dashboard 坐標

<?xml version="1.0" encoding="UTF-8"?>

修改啟動類

@EnableCircuitBreaker

修改配置文件

spring.application.name=eureka-consumer-hystrix-dashboard server.port=1001eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

啟動順序

先啟動服務,再啟動監控中心。

訪問監控中心

首頁介紹

監控中心圖解

五、使用Turbine在多個服務與集群情況下收集數據監控

Turbine是聚合服務器發送事件流數據的-一個工具,hystrix 的監控中,只能監控單個節點,實際生產中都為集群,因此可以通過turbine來監控集群服務。

1.創建Turbine項目

修改 pom 文件添加 turbine 坐標

<?xml version="1.0" encoding="UTF-8"?>

修改配置文件

spring.application.name=eureka-consumer-hystrix-turbine server.port=1002eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/#---------------------------------------turbine-------------------------- #配置 Eureka 中的 serviceId 列表,表明監控哪些服務 turbine.appConfig=eureka-consumer-ribbon-threadpool,springcloud-eureka-consumer-feign-fallback #指定聚合哪些集群,多個使用","分割,默認為 default??墒褂胔ttp://.../turbine.stream?cluster={clusterConfig 之一}訪問 turbine.aggregator.clusterConfig= default # 1. clusterNameExpression 指定集群名稱,默認表達式 appName;此時:turbine.aggregator.clusterConfig 需要配置想要監控的應用名稱; # 2. 當 clusterNameExpression: default 時,turbine.aggregator.clusterConfig 可以不寫,因為默認就是 default; # 3. 當 clusterNameExpression: metadata['cluster']時,假設想要監控的應用配置了 eureka.instance.metadata-map.cluster: ABC, # 則需要配置,同時 turbine.aggregator.clusterConfig:ABC turbine.clusterNameExpression="default"

修改啟動類

@SpringBootApplication

2.使用 Turbine 聚合多個服務

修改被聚合的項目的 pom 文件添加 dashboard 坐標

<?xml version="1.0" encoding="UTF-8"?>

修改被監控的服務的啟動類

@EnableFeignClients

查看 turbine 整合服務后的監控數據地址

http://localhost:1001/hystrix

測試turbine的整合

3.監控集群

六、采用 RabbitMQ,收集監控數據

1.創建 Consumer 服務

修改 Consumer 服務的 pom 文件

<?xml version="1.0" encoding="UTF-8"?>

修改 Consumer 的配置文件

spring.application.name=eureka-consumer-ribbon-dashboard server.port=9010eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/spring.rabbitmq.host=192.168.226.128 spring.rabbitmq.port=5672 spring.rabbitmq.username=user spring.rabbitmq.password=123456 spring.rabbitmq.virtualHost=/

修改啟動類

@EnableCircuitBreaker

2.創建Turbine項目

修改Turbine的pom文件

<?xml version="1.0" encoding="UTF-8"?>

修改Turbine的配置文件

spring.application.name=eureka-consumer-hystrix-turbine server.port=1002eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/spring.rabbitmq.host=192.168.226.128 spring.rabbitmq.port=5672 spring.rabbitmq.username=admin spring.rabbitmq.password=1111 spring.rabbitmq.virtualHost=/

修改Turbine的啟動類

@SpringBootApplication

總結

以上是生活随笔為你收集整理的feign返回null_109、Feign的服务降级和Turbine的全部內容,希望文章能夠幫你解決所遇到的問題。

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