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"
相关推荐
皮皮林5513 小时前
SpringBoot 全局/局部双模式 Gzip 压缩实战:14MB GeoJSON 秒变 3MB
java·spring boot
weixin_456904273 小时前
Spring Boot 用户管理系统
java·spring boot·后端
趁你还年轻_3 小时前
异步编程CompletionService
java
DKPT3 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
sibylyue3 小时前
Guava中常用的工具类
java·guava
奔跑吧邓邓子4 小时前
【Java实战㉞】从0到1:Spring Boot Web开发与接口设计实战
java·spring boot·实战·web开发·接口设计
专注API从业者4 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
奔跑吧邓邓子4 小时前
【Java实战㉝】Spring Boot实战:从入门到自动配置的进阶之路
java·spring boot·实战·自动配置
ONLYOFFICE4 小时前
【技术教程】如何将ONLYOFFICE文档集成到使用Spring Boot框架编写的Java Web应用程序中
java·spring boot·编辑器
叫我阿柒啊4 小时前
Java全栈开发工程师的实战面试经历:从基础到微服务
java·微服务·typescript·vue·springboot·前端开发·后端开发