版本规整V7
This commit is contained in:
parent
500a5f96eb
commit
aa2e2c3c93
@ -52,20 +52,20 @@ spring:
|
|||||||
type: ${spring.datasource.type}
|
type: ${spring.datasource.type}
|
||||||
|
|
||||||
############mysql###############
|
############mysql###############
|
||||||
#!driverClassName: com.mysql.cj.jdbc.Driver
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
#!url: jdbc:mysql://101.42.2.210:3306/cdsdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
url: jdbc:mysql://101.42.2.210:3306/cdsdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||||
#!username: root
|
username: root
|
||||||
#password: c12321456
|
#password: c12321456
|
||||||
#!password: ENC(s/jC75JXj3bcSLJe3+9ML0JhKPEN6iz1U57Q0n4zei0fi/DCNagIX41osRheliDD)
|
password: ENC(s/jC75JXj3bcSLJe3+9ML0JhKPEN6iz1U57Q0n4zei0fi/DCNagIX41osRheliDD)
|
||||||
|
|
||||||
############dameng###############
|
############dameng###############
|
||||||
#达梦没有rewriteBatchedStatements属性
|
#达梦没有rewriteBatchedStatements属性
|
||||||
driver-class-name: dm.jdbc.driver.DmDriver # 达梦驱动类
|
#driver-class-name: dm.jdbc.driver.DmDriver # 达梦驱动类
|
||||||
url: jdbc:dm://101.42.2.210:5236??schema=cdsdb&compatibleMode=mysql&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
#url: jdbc:dm://101.42.2.210:5236??schema=cdsdb&compatibleMode=mysql&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||||
username: CDSDB
|
#username: CDSDB
|
||||||
password: ENC(xglMxOJ6z9YyQWL9B7xyC+GCki0GU8lNs+jn4rLHJnWbD7gAlKsu52WkHmy3y119)
|
#password: ENC(xglMxOJ6z9YyQWL9B7xyC+GCki0GU8lNs+jn4rLHJnWbD7gAlKsu52WkHmy3y119)
|
||||||
|
|
||||||
# # 从库数据源
|
# # 从库数据源
|
||||||
# slave:
|
# slave:
|
||||||
|
@ -6,19 +6,19 @@ server:
|
|||||||
# 应用的访问路径,部署到外部中间件时会被覆盖,以中间件路径(前缀)为准
|
# 应用的访问路径,部署到外部中间件时会被覆盖,以中间件路径(前缀)为准
|
||||||
context-path: /
|
context-path: /
|
||||||
# undertow 配置
|
# undertow 配置
|
||||||
#undertow:
|
undertow:
|
||||||
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
|
# HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
|
||||||
#max-http-post-size: -1
|
max-http-post-size: -1
|
||||||
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
||||||
# 每块buffer的空间大小,越小的空间被利用越充分
|
# 每块buffer的空间大小,越小的空间被利用越充分
|
||||||
#buffer-size: 512
|
buffer-size: 512
|
||||||
# 是否分配的直接内存
|
# 是否分配的直接内存
|
||||||
#direct-buffers: true
|
direct-buffers: true
|
||||||
#threads:
|
threads:
|
||||||
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
||||||
#io: 8
|
io: 8
|
||||||
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
||||||
#worker: 256
|
worker: 256
|
||||||
#tomcat:
|
#tomcat:
|
||||||
# tomcat的URI编码
|
# tomcat的URI编码
|
||||||
#uri-encoding: UTF-8
|
#uri-encoding: UTF-8
|
||||||
|
@ -0,0 +1,63 @@
|
|||||||
|
package org.dromara.common.web.config;
|
||||||
|
|
||||||
|
import io.undertow.server.DefaultByteBufferPool;
|
||||||
|
import io.undertow.server.handlers.DisallowedMethodsHandler;
|
||||||
|
import io.undertow.util.HttpString;
|
||||||
|
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
|
||||||
|
import org.dromara.common.core.utils.SpringUtils;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
|
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
|
||||||
|
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
|
||||||
|
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Undertow 自定义配置
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
*/
|
||||||
|
@AutoConfiguration
|
||||||
|
public class UndertowConfig implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义 Undertow 配置
|
||||||
|
* <p>
|
||||||
|
* 主要配置内容包括:
|
||||||
|
* 1. 配置 WebSocket 部署信息
|
||||||
|
* 2. 在虚拟线程模式下使用虚拟线程池
|
||||||
|
* 3. 禁用不安全的 HTTP 方法,如 CONNECT、TRACE、TRACK
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @param factory Undertow 的 Web 服务器工厂
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void customize(UndertowServletWebServerFactory factory) {
|
||||||
|
factory.addDeploymentInfoCustomizers(deploymentInfo -> {
|
||||||
|
// 配置 WebSocket 部署信息,设置 WebSocket 使用的缓冲区池
|
||||||
|
WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
|
||||||
|
webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(true, 1024));
|
||||||
|
deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
|
||||||
|
|
||||||
|
// 如果启用了虚拟线程,配置 Undertow 使用虚拟线程池
|
||||||
|
if (SpringUtils.isVirtual()) {
|
||||||
|
// 创建虚拟线程池,线程池前缀为 "undertow-"
|
||||||
|
VirtualThreadTaskExecutor executor = new VirtualThreadTaskExecutor("undertow-");
|
||||||
|
// 设置虚拟线程池为执行器和异步执行器
|
||||||
|
deploymentInfo.setExecutor(executor);
|
||||||
|
deploymentInfo.setAsyncExecutor(executor);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 配置禁止某些不安全的 HTTP 方法(如 CONNECT、TRACE、TRACK)
|
||||||
|
deploymentInfo.addInitialHandlerChainWrapper(handler -> {
|
||||||
|
// 禁止三个方法 CONNECT/TRACE/TRACK 也是不安全的 避免爬虫骚扰
|
||||||
|
HttpString[] disallowedHttpMethods = {
|
||||||
|
HttpString.tryFromString("CONNECT"),
|
||||||
|
HttpString.tryFromString("TRACE"),
|
||||||
|
HttpString.tryFromString("TRACK")
|
||||||
|
};
|
||||||
|
// 使用 DisallowedMethodsHandler 拦截并拒绝这些方法的请求
|
||||||
|
return new DisallowedMethodsHandler(handler, disallowedHttpMethods);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -24,10 +24,10 @@
|
|||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- web 容器使用 undertow 性能更强 -->
|
<!-- web 容器使用 undertow 性能更强 -->
|
||||||
<!--<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-undertow</artifactId>
|
<artifactId>spring-boot-starter-undertow</artifactId>
|
||||||
</dependency>-->
|
</dependency>
|
||||||
|
|
||||||
<!-- spring security 安全认证 -->
|
<!-- spring security 安全认证 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
AppName=mps-server.jar
|
AppName=mps-server.jar
|
||||||
|
|
||||||
# JVM参数
|
# JVM参数
|
||||||
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
|
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms2048m -Xmx4096m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
|
||||||
APP_HOME=`pwd`
|
APP_HOME=`pwd`
|
||||||
LOG_PATH=$APP_HOME/logs/$AppName.log
|
LOG_PATH=$APP_HOME/logs/$AppName.log
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user