Apache Shenyu quick start

Apache Shenyu是一个正在孵化的高性能网关项目,晚上闲来无事,来尝试一下简单使用。网关是微服务组件之一,学习一下网关的设计思路,应该是有一些益处的。先从http quick start开始。

官方文档

我照着官方文档,来自己实践一下。

预期效果是通过访问网关,但实际上访问的是在网关后台配置的服务。

1. 克隆代码

git clone https://github.com/apache/incubator-shenyu.git

使用如上命令将代码克隆下来,然后通过IDE打开。

2. 启动后台管理服务 shenyu-admin

  • 修改配置文件

只需要修改数据库连接就可以了,我这里使用的是MySQL,所以把数据库连接配置改成自己的数据。多说一句,可以去某云买一个MySQL实例,20元一年,很便宜。

spring:
#  profiles:
#    active: h2
  datasource:
    url: jdbc:mysql://localhost:3306/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
  • 启动服务

不需要创建表结构,启动shenyu-admin后,会自动创建需要的表。

3. 添加网关配置

  • 登录shenyu的后台管理系统

输入http://localhost:9095登录,用户名是admin,密码是123456

  • 确定divide插件是开启状态


  • 添加选择器


当请求的 uri 前缀是 test,会转发到 127.0.0.1:8189 这个服务上。
配置的时候出现了一些问题:如果配置的ip:port是不通的,那么就无法保存,会默认把ip:port这个属性置为空。我刚开始的时候配错了,一直调不通。

  • 添加规则


当 uri 等于 /test/findByUserId 的时候能够匹配上该规则,就会执行该规则中,负载策略是 random,重试次数是 3 等处理操作。

4. 启动网关服务 shenyu-bootstrap

  • 添加需要的pom依赖
        
            org.apache.shenyu
            shenyu-spring-boot-starter-plugin-divide
            ${project.version}
        

        
            org.apache.shenyu
            shenyu-spring-boot-starter-plugin-httpclient
            ${project.version}
        
  • 启动服务

4. 启动实例http服务 shenyu-examples-http

  • 调用如下接口做测试


5. 使用postman进行测试

可以看到我们访问的是网关的端口,但是实际上访问的是http服务。达到预期效果。

你可能感兴趣的:(Apache Shenyu quick start)