解決spring cloud alibaba框架使用dubbo過程中No provider問題


可能很多人為了服務能同時支持feign和dubbo的調用會選擇使用spring cloud alibaba這個框架,最后發現了不少問題,比如重啟provider的時候,consumer經常報No provider的異常,也查找了很多解決方式,嘗試着升級版本等,最后可能都無濟於事。一開始以為是dubbo的問題,最后了解到spring cloud alibaba目前還不太適合於生產環境,下面講下如何以最便捷的方式解決這個問題。

1.注冊中心的改造
注冊中心這塊如果你同時用到dubbo和feign的話,要把注冊中心改成nacos,這樣可以同時支持兩種方式。以下的配置將基於nacos,nacos注冊中心引入spring cloud alibaba提供的jar

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.把dubbo包換掉
不要使用spring cloud alibaba提供的dubbo包

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>

換成

<dependency>
  <groupId>org.apache.dubbo</groupId>
  <artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>

3.修改配置

#可以兩種方式同時使用
#1.使用feign方式的時候需要配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848   
#2.使用dubbo方式
dubbo.consumer.check = false
dubbo.consumer.timeout = 3000
dubbo.consumer.retries = 0
dubbo.protocol.name = dubbo
dubbo.protocol.port = -1
dubbo.registry.address=nacos://127.0.0.1:8848

4.目前我使用的相關版本信息
spring-boot:2.1.5.RELEASE
spring-cloud-dependencies:Greenwich.SR6
dubbo-spring-boot-starter:2.7.3
spring-cloud-alibaba-dependencies:2.1.4.RELEASE


免責聲明!

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



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