dubbo學習實踐(4)之Springboot整合Dubbo及Hystrix服務熔斷降級


1. springboot整合dubbo

  • 在provider端,添加maven引入,修改pom.xml文件

    引入springboot,版本:2.3.2.RELEASE,dubbo(org.apache.dubbo)版本:2.7.8,服務注冊中心采用consul,添加consul注冊支持

    image
    image

    添加org.apache.curator包引入:

    image

  • 在程序主入口處,添加配置文件掃描路徑及啟用dubbo

    image

    配置類:DubboConfiguration

    image
    里面包含應用信息,注冊中心配置及應用服務協議定義

    在Annotation目錄下,定義服務接口定義IUserService及服務實現UserServiceImp

    image

    image

  • consumer端,同樣引入springboot運行程序,pom文件的內容與provider端一樣

    程序主入口如下:

    image

    定義一個服務接口IUserOperateService與實現UserOperateService,用來調用provider端提供的服務

    image
    image
    注意,dubbo的注解都有所變化,見紅圈處

  • 運行provider與consumer端,可以運行成功,springboot整合dubbo完成

2. dubbo集成hystrix框架

  • 看一下hystrix工作流程,參考url: https://www.jianshu.com/p/611a7f150180

    image

  • Dubbo服務降級

    image

  • Hystrix

    Hystrix 旨在通過控制那些訪問遠程系統、服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。Hystrix具備擁有回退機制和斷路器功能的線程和信號隔離,請求緩存和請求打包,以及監控和配置等功能。
    在provider項目中,添加Hystrix依賴
      <!--服務降級服務容錯 -->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
          <version>2.2.5.RELEASE</version>
      </dependency>
    

    image

    在項目中,maven添加web引用,否則provider會自動退出

    image

    在provider啟動端,添加Hytrix服務熔斷啟用注解@EnableHystrix

    image

    在Provider端,添加UserServiceImp和IUserService服務定義,驗證服務熔斷

    image

    定義為DubboService,添加Hystrix注解,定義熔斷條件,超時時間為2s
  • Consumer端Hystrix配置

    主程序,添加配置@EnableHystrix

    image

    @EnableDubbo(scanBasePackages = "com.dubbo.consumer.Annotation"),掃描dubbo相關配置文件定義類
    新建UserOperateService和IUserOperateService操作來,用來遠程調用userservice服務

    image

    定義一個Controller,進行熔斷測試

    image

  • 運行調試

    輸入地址:http://localhost:8580/GetHelloWorldReply?uid=xujk
    多刷新幾次,看返回的結果也是不同的
    成功調用:

    image

    失敗(超時)調用:

    image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM