Solon Cloud Gateway 开发:熟悉 Cloud Gateway

Solon Cloud Gateway 是基于 Solon Cloud、Vert.X 和 Solon-Rx(reactive-streams) 接口实现,响应式的接口体验。因为内置了 solon-boot-vertx ,同时也支持 常规的 web 开发。

1、完整的配置说明(对应的配置结构类为:GatewayProperties)

yaml 复制代码
solon.cloud.gateway:
  discover:
    enabled: false
    excludedServices: 
      - "self-service"
  httpClient:
      responseTimeout: 1800 #单位:秒
  routes:
    - id: demo
      index: 0 #默认为0
      target: "http://localhost:8080" # 或 "lb://user-service"
      predicates:
        - "Path=/demo/**"
      filters:
        - "StripPrefix=1"
      timeout:
         responseTimeout: 1800 #单位:秒
  defaultFilters:
    - "AddRequestHeader=Gateway-Version,1.0"

配置项说明:

主要配置项 相关类型 说明
discover 自动发现配置(基于 solon cloud discovery)
- enabled 是否启用自动发现
- excludedServices String[] 排除服务
httpClient Http 客户端的默认超时(单位:秒)
- connectTimeout 连接超时
- requestTimeout 请求超时
- responseTimeout 响应超时
routes Route[] 路由
- id String 标识(必选)
- index Int 顺序位
- target URI 目标(必选)
- predicates RoutePredicateFactory 检测器
- filters RouteFilterFactory 过滤器
defaultFilters RouteFilterFactory 所有路由的默认过滤器

2、配置示例

添加 solon-lib 和 solon-cloud-gateway 插件后就可以开始配置了。

  • 手动配置示例
yaml 复制代码
solon.app:
  name: demo-gateway
  group: gateway

solon.cloud.gateway:
  routes:
    - id: demo
      target: "http://localhost:8080" #直接目标地址 或负载均衡地址 "lb://demo-service"
      predicates:
        - "Path=/demo/**"
      filters:
        - "StripPrefix=1"

使用发现服务配置时。约定 path 的第一段为 serviceName。

yaml 复制代码
solon.app:
  name: demo-gateway
  group: gateway

solon.cloud.nacos:
  server: "127.0.0.1:8848"   #以nacos为例

solon.cloud.gateway:
  discover:
    enabled: true
    excludedServices:
      - "self-service-name"
  defaultFilters:
      - "StripPrefix=1"
相关推荐
€8112 分钟前
Java入门级教程24——Vert.x的学习
java·开发语言·学习·thymeleaf·数据库操作·vert.x的路由处理机制·datadex实战
Mr_star_galaxy11 分钟前
【JAVA】经典图书管理系统的实现
java
昊坤说不出的梦16 分钟前
【实战】监控上下文切换及其优化方案
java·后端
今天_也很困1 小时前
LeetCode热题100-560. 和为 K 的子数组
java·算法·leetcode
在繁华处2 小时前
线程进阶: 无人机自动防空平台开发教程V2
java·无人机
A懿轩A2 小时前
【Java 基础编程】Java 变量与八大基本数据类型详解:从声明到类型转换,零基础也能看懂
java·开发语言·python
m0_740043732 小时前
【无标题】
java·spring boot·spring·spring cloud·微服务
@ chen2 小时前
Spring事务 核心知识
java·后端·spring
aithinker2 小时前
使用QQ邮箱收发邮件遇到的坑 有些WIFI不支持ipv6
java
星火开发设计2 小时前
C++ 预处理指令:#include、#define 与条件编译
java·开发语言·c++·学习·算法·知识