Soul 学习笔记之 Soul Spring-cloud 插件(四)

总系列目录地址

上篇dubbo/sofa插件

spring-cloud 插件

  • 打开soul-bootstrap,加入maven依赖,并重新启动。
    <!--soul springCloud plugin start-->
     <dependency>
          <groupId>org.dromara</groupId>
          <artifactId>soul-spring-boot-starter-plugin-springcloud</artifactId>
          <version>${project.version}</version>
      </dependency>
     <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-commons</artifactId>
          <version>2.2.0.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
          <version>2.2.0.RELEASE</version>
      </dependency>
      <!--soul springCloud plugin start end-->
    
  • 启动soul-example-springcloud, 不需要启动eureka也可以正常使用。
    直接访问springcloud url直接访问
  • 查看soul-admin,并打开组件
    查看注册的springcloud组件组件已注册
    打开组件开关
    打开springcloud
    通过soul网管访问
    访问springcloud错误
  • 第一次调用访问错误并解决
  1. 通过返回信息得知,rule 没有找到。查看soul-bootstrap后台在 checkUtils 类中抛出错误。猜测是uri有问题,果然发现我的请求是 http://localhost:9195//springcloud/order/findById?id=de
    在这里插入图片描述
  2. 修改正确的url后再抛异常。
     {"code":-109,"message":"springCloud serviceId does not exist or is configured incorrectly!","data":null}
    
    通过debug发现loadBalancer在调用choose方法是返回null,继续通过debug发现,指定了从一个注册中心里面获取服务
    在这里插入图片描述
  3. 启动soul-examples-eureka(http://localhost:8761/eureka/), 重启soul-examples-springcloud
  4. 修改soul-bootstrap配置
    maven添加依赖,打开配置
      <!-- springCloud if you config register center is eureka please dependency end-->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
          <version>2.2.0.RELEASE</version>
      </dependency>
    
    application-local.yml修改配置
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
      instance:
        prefer-ip-address: true
    
  • 重新调http://localhost:9195/springcloud/order/findById?id=xx,成功!
    正常访问

总结

  • spring-cloud 跟其他组件不一样,是通过一个注册中心来访问spring-cloud应用。注册中心可以是eureka或者nacos, 负载均衡算法可以在 具体的应用里面指定,如
    springCloud-test:
      ribbon.NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
    
  • 测试发现,停止eureka后,也可以正常访问spring-cloud服务,应该是把访问结果缓存下来了,不用每次都去注册中心。后续debug。

下篇soul插件实现方式(五)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值