searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Spring Gateway无注册中心形式代理websocket服务

2024-05-07 02:18:34
44
0

一、简介

Spring Gateway是一个基于Spring Framework 5,Project Reactor和Spring Boot 2的反应式API网关,可以在微服务架构中用于路由、过滤和转换请求。当某些情况下,我们可能没有部署注册中心,如nacos。这时候该如何配置Spring Gateway?本文主要就是介绍在无注册中心的情况下如何配置代理后端websocket服务,并实现负责均衡。

二、配置文件

spring:
  main:
    allow-circular-references: true
  application:
    name: gateway
  cloud: #配置SpringCloudGateway的路由
    gateway:
      default-filters:
        - name: RequestSize
          args:
            maxSize: 100000000
      httpclient:
        websocket:
          max-frame-payload-length: 104857600
        connect-timeout: 3000
        response-timeout: 30s
        pool:
          max-connections: 5000 #最大连接数
          #max-life-time: 45000 #最大连接时间
          acquire-timeout: 15000 #返回时间
          max-idle-time: 10000 #最大空闲时间
      routes:
        #情况截图1
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true # 服务名小写
    discovery:
      client:
        simple:
          instances:
           #请看截图2
    loadbalancer:
      health-check:
        path:
          load-ws-service: /api/check   #服务提供一个健康检查的请求做健康检查
          load-http-service: /api/check
          initial-delay: 0 #运行状况检查计划程序的初始延迟值。
          interval: 5s # 重新运行运行状况检查计划程序的时间间隔。
      configurations: health-check #启用预定义的负载平衡器配置

server:
  port: 19900 #网关端口

因为不合格字符拦截原因部分代码只能截图

1、截图1

2、截图2

 

三、配置文件解释

1、上面的配置文件中,我们定义了2个路由,分别代理了http和websocket服务,其中ws  load-ws-service就是websocket服务,lb代表需要负载均衡,Path代表要拦截转发的请求路径

     请看截图1

2、discovery.client.simple.instances则定义了上面路由对应的后端服务,如果要加多个服务,加多uri,加多一行即可

    请看截图2

四、总结

配置文件大体已经说明了配置的作用,通过上述配置,我们可以使用Spring Gateway在无注册中心的情况下来代理websocket服务。配置简单明了,同时具有灵活性和可扩展性,适用于各种微服务架构的场景。在实际应用中,可以根据具体需求进一步定制和扩展配置,以满足业务需求。

 

五、备注

文中采用spring相关版本如下:

<spring-boot.version>2.6.3</spring-boot.version>
<spring-cloud.version>2021.0.3</spring-cloud.version>

0条评论
0 / 1000
卢****兴
1文章数
0粉丝数
卢****兴
1 文章 | 0 粉丝
卢****兴
1文章数
0粉丝数
卢****兴
1 文章 | 0 粉丝
原创

Spring Gateway无注册中心形式代理websocket服务

2024-05-07 02:18:34
44
0

一、简介

Spring Gateway是一个基于Spring Framework 5,Project Reactor和Spring Boot 2的反应式API网关,可以在微服务架构中用于路由、过滤和转换请求。当某些情况下,我们可能没有部署注册中心,如nacos。这时候该如何配置Spring Gateway?本文主要就是介绍在无注册中心的情况下如何配置代理后端websocket服务,并实现负责均衡。

二、配置文件

spring:
  main:
    allow-circular-references: true
  application:
    name: gateway
  cloud: #配置SpringCloudGateway的路由
    gateway:
      default-filters:
        - name: RequestSize
          args:
            maxSize: 100000000
      httpclient:
        websocket:
          max-frame-payload-length: 104857600
        connect-timeout: 3000
        response-timeout: 30s
        pool:
          max-connections: 5000 #最大连接数
          #max-life-time: 45000 #最大连接时间
          acquire-timeout: 15000 #返回时间
          max-idle-time: 10000 #最大空闲时间
      routes:
        #情况截图1
      discovery:
        locator:
          enabled: true
          lower-case-service-id: true # 服务名小写
    discovery:
      client:
        simple:
          instances:
           #请看截图2
    loadbalancer:
      health-check:
        path:
          load-ws-service: /api/check   #服务提供一个健康检查的请求做健康检查
          load-http-service: /api/check
          initial-delay: 0 #运行状况检查计划程序的初始延迟值。
          interval: 5s # 重新运行运行状况检查计划程序的时间间隔。
      configurations: health-check #启用预定义的负载平衡器配置

server:
  port: 19900 #网关端口

因为不合格字符拦截原因部分代码只能截图

1、截图1

2、截图2

 

三、配置文件解释

1、上面的配置文件中,我们定义了2个路由,分别代理了http和websocket服务,其中ws  load-ws-service就是websocket服务,lb代表需要负载均衡,Path代表要拦截转发的请求路径

     请看截图1

2、discovery.client.simple.instances则定义了上面路由对应的后端服务,如果要加多个服务,加多uri,加多一行即可

    请看截图2

四、总结

配置文件大体已经说明了配置的作用,通过上述配置,我们可以使用Spring Gateway在无注册中心的情况下来代理websocket服务。配置简单明了,同时具有灵活性和可扩展性,适用于各种微服务架构的场景。在实际应用中,可以根据具体需求进一步定制和扩展配置,以满足业务需求。

 

五、备注

文中采用spring相关版本如下:

<spring-boot.version>2.6.3</spring-boot.version>
<spring-cloud.version>2021.0.3</spring-cloud.version>

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0