本文中的 Gateway 是通过 spring-cloud-starter-gateway 来实现的。所以,整个 Gateway 就是一个 SpringBoot 项目。相信大家应该都清楚 SpringBoot 默认使用的是 Tomcat 进行启动的,我们可以通过 application.yml 来对 Tomcat 进行一些相关的配置,如下:

server:
  port: 8080
  tomcat:
    # 最大连接数,设置为0为不限制;如果不设置,则默认 10000
    max-connections: 1000
    # post提交数据最大大小,设置为0不限制;如果不设置,则默认 2M
    max-http-post-size: 0
    # 最大线程数,设置为0不限制;如果不设置,则默认 200
    max-threads: 800
    # 最小线程数,设置为0不限制;如果不设置,则默认 10
    min-spare-threads: 150
    # 编码方式
    uri-encoding: UTF-8

看起来是不是一切都很完美呢?

但是令人沮丧的是,Gateway 并不会按着如上的配置来运行!!!!

问题到底出在哪里呢?为啥 Tomcat 的配置不生效呢?为啥其他微服务(业务相关,例如:订单、用户等等)都没问题呢?

问题其实就出在 Gateway 不是普通的与业务相关的微服务上,让我们来看下 Gateway 的启动日志吧,如下:
在这里插入图片描述
通过日志,我们可以清楚的看到 Gateway 其实是用 Netty 来启动的,而不是 Tomcat。让我们再来看下用 Tomcat 启动的微服务日志吧,如下:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐