高性能网关soul入门 第五章 springcloud接入网关

786 阅读1分钟
  • soul网关介绍及启动网关 见 第一章

  • 网关加载 springcloud 插件

    Pom.xml 引入springcloud相关插件,springcloud用eureka做注册中心,所以也要引入eureka

     <!--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-->
     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                <version>2.2.0.RELEASE</version>
            </dependency>
    
    • 在application.yml 添加连接eureka 的配置

      eureka:
        client:
          serviceUrl:
            defaultZone: http://localhost:8761/eureka/
        instance:
          prefer-ip-address: true
      
  • 启动eureka,可以用官方提供的程序soul-examples-eureka

  • 启动soul-admin 在控制台开启springcloud插件

  • 执行SoulBootstrapApplication 启动网关

  • springcloud微服务接入网关,以官方提供的soul-examples-springcloud 做示例

  • 修改pom引入依赖

    <!--  接入网关必须的jar   -->
    <dependency>
        <groupId>org.dromara</groupId>
        <artifactId>soul-spring-boot-starter-client-springcloud</artifactId>
        <version>${soul.version}</version>
    </dependency>
     <!--  使用eureka做注册中心    -->
     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                <version>${spring-cloud.version}</version>
            </dependency>
    
  • application.yml 加入配置

    eureka:
      client:
        serviceUrl:
          defaultZone:  http://localhost:8761/eureka/   # 连接eureka注册中心
    
    soul:
      springcloud:
        admin-url: http://localhost:9095   # 接口信息推送到网关控制台
        context-path: /springcloud
        
    
  • 接口类加入注解 SoulSpringCloudClient 该类到接口信息被推送到网关控制台

    @RestController
    @RequestMapping("/test")
    @SoulSpringCloudClient(path = "/test/**")
    public class TestController {
        @GetMapping("/findByUserId")
        public UserDTO findByUserId(@RequestParam("userId") final String userId) {
            UserDTO userDTO = new UserDTO();
            userDTO.setUserId(userId);
            userDTO.setUserName("hello world spring cloud findBy user");
            return userDTO;
        }
    }
    
  • 执行 SoulTestSpringCloudApplication 启动服务

​ 启动成功后控制台(访问 http://localhost:9095 用户名 admin 密码123456) 查看springcloud 插件 将看到推送上来的接口信息,如上图

  • 通过网关访问接口,如下图,访问成功

  • 总结: springcloud 接入soul网关就那么简单