soul入门 第一章 基本概念及使用

1,984 阅读3分钟

soul入门 第一章 基本概念及使用

简介

网关顾名思义是请求的统一入口,在微服务应用场景下有不可或缺的作用。soul是新一代网关,在吸收前人优秀设计理念后开发出的一款具有高性能、可扩展、灵活等优点。

功能特点

  • 提供了诸如限流、熔断、转发和路由监控等插件

  • 已HTTP、RESTful、WebSocket、Dubbo和Spring Cloud 无缝对接

  • 支持热插拔,用户可以定制化开发

  • 为了灵活的适配,选择器和规则可以动态的适配

  • 支持集群部署

  • 支持 A/B 测试和灰度发布

    架构

从架构图看出,soul网关主要有两个大模块组成,第一个是负责信息配置另一块负责实现网关核心功能也即是请求转发

  • soul-admin 工程,负责管理插件和选择器、规则等配置信息;
  • soul-bootstrap 网关核心工程,主要接收请求,经过一系列插件处理,然后转发到相应的应用。

soul安装启动

  • https://github.com/dromara/soul 先fork到自己账号,然后clone到本地

  • 把下载下来的源代码引入idea

  • 如果没安装maven,先安装,这里不细说。编译代码 mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true

  • 修改soul-admin 工程配置文件里面的链接数据库的用户名密码为你机器的用户名密码,执行 SoulAdminBootstrap 类,启动工程。浏览器访问 http://localhost:9095/ 即可看到管理后台界面,用户名admin 密码 123456 ,相关配置代码片段如下

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/soul?useUnicode=true&characterEncoding=utf-8
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
    
  • 启动网关核心工程soul-bootstrap ,直接执行 SoulBootstrapApplication ,启动前首先要配置好配置文件,相关配置代码片段如下

    soul :
        sync:
            websocket :
                 urls: ws://localhost:9095/websocket
    

    soul.sync.websocket 的意义是建立跟localhost:9095(soul-admin 工程地址)建立websocket链接。建立连接后,soul-admin 会把所有配置信息push 给 soul-bootstrap ,soul-admin配置有更新也会增量同步到soul-bootstrap。至此,soul网关启动完成

    • 为了验证网关是否跑通,启动测试服务demo 注册到网关,测试请求通过网关是否可以访问demo。我们选取soul提供到测试工程 soul-test-http 工程。

    • 启动soul-test-http ,需要先在pom.xml引入如下依赖包,并且需要配置连接soul-admin,如下

      <dependency>
          <groupId>org.dromara</groupId>
          <artifactId>soul-spring-boot-starter-client-springmvc</artifactId>
          <version>${soul.version}</version>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter</artifactId>
      </dependency>
      
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-webflux</artifactId>
      </dependency>
      
      soul:
        http:
          adminUrl: http://localhost:9095
          port: 8187
          contextPath: /http
          appName: http
          full: false
      

    ​ adminUrl 为soul-admin 访问地址

    port 本应用启动端口

    contextPath 注册到网关的本应用根路径,如上配置,通过网关访问本应用接口可以通过地址 http://localhost:919 5/http/test/**

    appName 应用名称

    总结

    基本的使用还是比较简单的,因为soul各模块工程都基于springboot开发,启动soul-admin、soul-bootstrap,网关就启动了。这一章就到这里了,后面章节会对soul各部分和使用进行深入剖析,敬请关注。