Soul源码解析(11)-Soul网关SpringCloud插件使用

本文详细介绍了如何运行Soul网关的SpringCloud插件,包括启动soul-admin、配置Soul-bootstrap、接入Eureka以及设置服务注册。通过引入相关依赖并配置YML文件,实现了SpringCloud服务的注册与网关调用。最后,简要提及了明日将分析的SpringCloud插件工作原理。
摘要由CSDN通过智能技术生成

一、目标

运行Soul网关SpringCloud插件并了解其背后的运行原理。

二、内容

2.1 背景

先一起来了解一下SpringCloud:

  • SpringCloud为开发者提供工具用来快速的构建分布式系统中的某些常见模式(例如,配置管理、服务发现、断路器、智能路由、微代理、控制总线,一次性令牌、全局锁、leader选举、分布式会话、集群状态)。分布式系统的协调导致了样板式样,并且使用Spring Cloud开发人员可以快速实现这些样板的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。

  • springcloud专注于为典型用例提供良好的开箱即用体验,并提供覆盖其他用例的扩展机制。

    2.2 SpringCloud插件使用

    2.2.1 启动soul-admin

    • 启动soul-admin服务,在后台把SpringCloud插件开启;

在这里插入图片描述

  • 在soul-bootstrap里面引入SpringCloud插件支持,如果使用Eureka作为注册中心的话,还要加上Eureka的依赖;

    <!--soul springCloud plugin start-->
      <dependency>
           <groupId>org.dromara</groupId>
           <artifactId>soul-spring-boot-starter-plugin-springcloud</artifactId>
            <version>${last.version}</version>
      </dependency>
    
      <dependency>
           <groupId>org.dromara</groupId>
           <artifactId>soul-spring-boot-starter-plugin-httpclient</artifactId>
           <version>${last.version}</version>
       </dependency>
       <!--soul springCloud plugin end-->
    
       <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</vsion>
       </dependency>
    
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                <version>2.2.0.RELEASE</version>
            </dependency>
    
    • 修改soul-bootstrap配置文件;
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
      instance:
        prefer-ip-address: true
    

    2.2.2 启动Eureka及网关服务

    • 找到项目里面的soul-examples-eureka服务,修改配置文件,然后启动服务。
      在这里插入图片描述
      配置文件如下:
    eureka:
      instance:
        hostname: ${hostname:localhost}
        preferIpAddress: true
        lease-renewal-interval-in-seconds: 2
        lease-expiration-duration-in-seconds: 6
      server:
        peerEurekaNodesUpdateIntervalMs: 60000
        enableSelfPreservation: false
        evictionIntervalTimerInMs: 5000
      client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
        healthcheck:
          enabled: true
        eurekaServiceUrlPollIntervalSeconds: 60
    
    • 接下来再启动网关soul-bootstrap服务;

    • 然后可以登录Eureka的管理页面,来查看服务注册情况;

    http://localhost:8761/
    

在这里插入图片描述

2.3 SpringCloud服务接入网关

  • 在你的项目里面引入以下依赖
<dependency>
      <groupId>org.dromara</groupId>
      <artifactId>soul-spring-boot-starter-client-springcloud</artifactId>
      <version>${last.version}</version>
 </dependency>
  • 在你的yml配置文件中新增如下配置
soul:
 springcloud:
   admin-url: http://localhost:9095
   context-path: /springcloud
   full: true
# adminUrl: 为你启动的soul-admin 项目的ip + 端口,注意要加http://
# contextPath: 为你的这个mvc项目在soul网关的路由前缀,这个你应该懂意思把? 比如/order ,/product 等等,网关会根据你的这个前缀来进行路由.
# full: 设置true 代表代理你的整个服务,false表示代理你其中某几个controller
  • 在你的 controller的接口上加上 @SoulSpringCloudClient 注解。然后就可以通过网关来调用了;

    • 接下来我们运行Soul网关里面的soul-examples-springcloud项目,这个项目模拟的就是你的提供服务的项目,你的项目要使用SpringCloud插件,可以参考这个例子;

    在这里插入图片描述

  • 启动你的服务,然后就可以开始使用网关服务了;

  • 首先用项目原地址访问:
    在这里插入图片描述

  • 然后使用网关来进行服务转发
    在这里插入图片描述

三、总结

今天学习了SpringCloud插件的使用,明天分析插件背后的运作原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值