首页 > 解决方案 > 如何通过码头设置mysql max idel

问题描述

我想使用jetty而不是tomcat,但是如何通过jetty设置mysql max idel?
环境:spring boot,gradle

spring:
  datasource:
    url: jdbc:mysql://${MYSQL_HOST:cc-mysql}:${MYSQL_PORT:3306}/cc
    username: ${MYSQL_USERNAME:root}
    password: ${MYSQL_PASSWORD:root}
    driver-class-name: com.mysql.jdbc.Driver
    tomcat:
      max-active: ${MYSQL_MAX_ACTIVE:10}
      max-idle: ${MYSQL_MAX_IDEL:1}
  jpa:
    show-sql: false
    hibernate:
      ddl-auto: update

标签: jetty

解决方案


其中的配置spring.datasource.tomcat.*用于配置 Tomcat 数据源池。(又名org.apache.tomcat.jdbc.pool.DataSource

spring.datasource.type缺少(隐含?)选项的更完整示例。

spring:
  application:
    name: My Example Application
  datasource:
    name: example
    url: jdbc:mysql://dev.mysql.example.com:4444/db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&failOverReadOnly=false
    username: userexample
    password: userpass
    type: org.apache.tomcat.jdbc.pool.DataSource
    driver-class-name: com.mysql.jdbc.Driver
    tomcat:
      max-active: 5
      max-idle: 5
      min-idle: 5
      initial-size: 5
      validation-query: 'select 1'
      test-on-borrow: true
      test-on-return: true
      test-while-idle: true
      max-wait: 15000

Jetty 没有提供容器特定的数据源池。

此时,您有两个选择。

  1. 直接使用mysql数据源。(这是最简单的方法)
  2. 改为使用众多 DataSource 池库之一。

如果您选择使用 DataSource Pool 库,它将有自己的配置,您必须学习才能知道如何调整它。该配置max-idle可能不存在,甚至可能在该库中以不同的方式命名,或者可能存在但不是通过简单的数字配置,或者它可能指的是分钟(或毫秒)而不是秒。


推荐阅读