代码优化-升级springboot版本和其中的hikar连接池

This commit is contained in:
2023-01-07 15:45:20 +08:00
parent 9306f6dbe4
commit 1cfbd2d559
10 changed files with 64 additions and 184 deletions

View File

@@ -12,7 +12,6 @@ spring:
connection-test-query: select 1
max-lifetime: 0
connection-timeout: 30000
data:
mongodb:
host: 118.194.255.128
port: 27017

View File

@@ -2,10 +2,20 @@ package com.accompany.business.config;
import com.accompany.business.elasticsearch.ElasticsearchClientV2;
import com.accompany.business.elasticsearch.ElasticsearchRestClient;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.Primary;
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
@@ -60,14 +70,40 @@ public class ElasticsearchConfig {
this.password = password;
}
@Bean(initMethod = "init",name = "elasticsearchRestClient")
public ElasticsearchRestClient elasticsearchRestClient(ElasticsearchConfig elasticsearchConfig) {
return new ElasticsearchRestClient(elasticsearchConfig);
@Bean
public RestClient restClient(){
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
if (StringUtils.isNotEmpty(username) && StringUtils.isNotEmpty(password)) {
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
}
return RestClient.builder(new HttpHost(hostName, port))
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)).build();
}
@Bean(initMethod = "init",name = "elasticsearchClientV2")
public ElasticsearchClientV2 elasticsearchClientV2(ElasticsearchConfig elasticsearchConfig) {
return new ElasticsearchClientV2(elasticsearchConfig);
@Bean
public RestHighLevelClient restHighLevelClient(){
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
if (StringUtils.isNotEmpty(username) && StringUtils.isNotEmpty(password)) {
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
}
RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(hostName, port))
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
return new RestHighLevelClient(restClientBuilder);
}
@Primary
@Bean("elasticsearchRestClient")
@DependsOn("restClient")
public ElasticsearchRestClient elasticsearchRestClient(ElasticsearchConfig elasticsearchConfig, RestClient restClient) {
return new ElasticsearchRestClient(elasticsearchConfig, restClient);
}
@Bean("elasticsearchClientV2")
@DependsOn("restHighLevelClient")
public ElasticsearchClientV2 elasticsearchClientV2(ElasticsearchConfig elasticsearchConfig, RestHighLevelClient restHighLevelClient) {
return new ElasticsearchClientV2(elasticsearchConfig, restHighLevelClient);
}
public String getUserIndex() {

View File

@@ -35,8 +35,9 @@ public class ElasticsearchClientV2 {
private final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create();
private final String ES_LINE_BREAK = "\n";
public ElasticsearchClientV2(ElasticsearchConfig elasticsearchConfig){
public ElasticsearchClientV2(ElasticsearchConfig elasticsearchConfig, RestHighLevelClient restHighLevelClient){
this.elasticsearchConfig = elasticsearchConfig;
this.restClient = restHighLevelClient;
}
public void init(){

View File

@@ -44,8 +44,9 @@ public class ElasticsearchRestClient {
private final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create();
private final String ES_LINE_BREAK = "\n";
public ElasticsearchRestClient(ElasticsearchConfig elasticsearchConfig){
public ElasticsearchRestClient(ElasticsearchConfig elasticsearchConfig, RestClient restClient){
this.elasticsearchConfig = elasticsearchConfig;
this.restClient = restClient;
}
public void init(){

View File

@@ -571,7 +571,7 @@ public class RoomPKService extends BaseService {
//查询最新一条的PK模式
Query query = new Query();
query.addCriteria(Criteria.where("roomUid").is(roomUid))
.with(new Sort(Sort.Direction.DESC,"createTime"));
.with(Sort.by(Sort.Direction.DESC, "createTime"));
query.skip(0).limit(1);
List<RoomPK> list = roomPkDAO.findByQuery(query);
@@ -609,7 +609,7 @@ public class RoomPKService extends BaseService {
pkStatus.add(Constant.RoomPKStatus.FINISH);
pkStatus.add(Constant.RoomPKStatus.FORCE_FINISH);
query.addCriteria(Criteria.where("roomUid").is(roomUid).and("endTime").lt(System.currentTimeMillis()).and("pkStatus").in(pkStatus))
.with(new Sort(Sort.Direction.DESC,"createTime"));
.with(Sort.by(Sort.Direction.DESC, "createTime"));
long count = roomPkDAO.count(query);
query.skip(start).limit(pageSize);
List<RoomPK> list = roomPkDAO.findByQuery(query);

View File

@@ -5,12 +5,11 @@ spring:
username: root
password: anan@dev##
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 10
maximum-pool-size: 20
connection-test-query: select 1
max-lifetime: 0
connection-timeout: 30000
data:
mongodb:
host: 118.194.255.128

View File

@@ -0,0 +1,12 @@
task:
checkUserTime: 0/30 * * * * ?
beforeDay: 30
size: 5
startTime: 2019-03-01 00:00:00
updatePrizeTime: 0/5 * * * * ?
prizeSize: 50
updateHotValueTime: 0/5 * * * * ?
updateLimit: 20
updateAuditCount: 0/30 * * * * ?
sumPurseTime: 0/30 * * * * ?
financeTime: 0/30 * * * * ?

View File

@@ -24,7 +24,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<version>2.3.12.RELEASE</version>
</parent>
<properties>
@@ -53,7 +53,7 @@
<apache.commons.version>3.3.2</apache.commons.version>
<commons-pool2.version>2.4.2</commons-pool2.version>
<oro.version>2.0.8</oro.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
<qiniu.version>7.6.0</qiniu.version>
<nacos.config.version>0.2.2.RELEASE</nacos.config.version>
<okhttp.version>3.10.0</okhttp.version>

View File

@@ -1,144 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<!--引入默认的一些设置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--web信息-->
<logger name="org.springframework.web" level="info"/>
<!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="/data/java/weblog/accompany-business"/>
<appender name="info_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/web_info.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/rolling/web_info.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<maxHistory>90</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>256MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n</pattern>
</encoder>
</appender>
<appender name="warn_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/web_warn.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/rolling/web_warn_.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<maxHistory>90</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>256MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n</pattern>
</encoder>
</appender>
<appender name="error_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/web_error.log</file>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/rolling/web_error_.%d{yyyy-MM-dd}.%i.log.gz
</fileNamePattern>
<maxHistory>90</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>256MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>%date [%thread] [%file:%line] [%level %logger{0}] - %msg%n</pattern>
</encoder>
</appender>
<!--异步到文件-->
<appender name="info_async_file" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>12</discardingThreshold>
<queueSize>512</queueSize>
<appender-ref ref="info_file"/>
</appender>
<appender name ="warn_async_file" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold >12</discardingThreshold>
<queueSize>512</queueSize>
<includeCallerData>false</includeCallerData>
<appender-ref ref ="warn_file"/>
</appender>
<appender name ="error_async_file" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold >12</discardingThreshold>
<queueSize>512</queueSize>
<includeCallerData>false</includeCallerData>
<appender-ref ref ="error_file"/>
</appender>
<!--生产环境:打印控制台和输出到文件-->
<springProfile name="prod">
<root level="info">
<!--<appender-ref ref="CONSOLE"/>-->
<appender-ref ref="info_async_file"/>
<appender-ref ref="warn_async_file"/>
<appender-ref ref="error_async_file"/>
</root>
</springProfile>
<!--开发环境:打印控制台-->
<springProfile name="dev">
<logger name="com.accompany" level="DEBUG"/>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="info_async_file"/>
<appender-ref ref="warn_async_file"/>
<appender-ref ref="error_async_file"/>
</root>
</springProfile>
<springProfile name="native">
<logger name="com.accompany" level="DEBUG"/>
<logger name="com.xuanyin" level="DEBUG"/>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="info_async_file"/>
<appender-ref ref="warn_async_file"/>
<appender-ref ref="error_async_file"/>
</root>
</springProfile>
</configuration>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false"/>
<setting name="useGeneratedKeys" value="true"/>
<setting name="defaultStatementTimeout" value="2000" />
<!--<setting name="logImpl" value="STDOUT_LOGGING" />-->
</settings>
<!--<typeAliases>-->
<!--<typeAlias alias="User" type="com.xchat.oauth2.service.domain.user.User"/>-->
<!--<typeAlias alias="OAuthClientDetails" type="com.xchat.oauth2.service.domain.oauth.OAuthClientDetails"/>-->
<!--</typeAliases>-->
<!--<mappers >-->
<!--<mapper resource="erban.sqlmappers/VideoOrgListMapper.xml"/>-->
<!--<mapper resource="erban.sqlmappers/VideoMapper.xml"/>-->
<!--<mapper resource="erban.sqlmappers/VideoTagMapper.xml"/>-->
<!--</mappers>-->
</configuration>