parent
6290f8e12e
commit
2f0c503da1
@ -70,6 +70,8 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>8.0.13</version>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-dbcp</groupId>
|
<groupId>commons-dbcp</groupId>
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
package com.alibaba.nacos.config.server.service;
|
package com.alibaba.nacos.config.server.service;
|
||||||
|
|
||||||
import com.alibaba.nacos.config.server.monitor.MetricsMonitor;
|
import com.alibaba.nacos.config.server.monitor.MetricsMonitor;
|
||||||
|
import com.alibaba.nacos.core.utils.InetUtils;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -31,6 +32,8 @@ import com.alibaba.nacos.config.server.utils.PropertyUtil;
|
|||||||
import org.apache.commons.dbcp.BasicDataSource;
|
import org.apache.commons.dbcp.BasicDataSource;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.math.NumberUtils;
|
import org.apache.commons.lang3.math.NumberUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.dao.DataAccessException;
|
import org.springframework.dao.DataAccessException;
|
||||||
@ -52,7 +55,10 @@ import static com.alibaba.nacos.config.server.utils.LogUtil.fatalLog;
|
|||||||
*/
|
*/
|
||||||
@Service("basicDataSourceService")
|
@Service("basicDataSourceService")
|
||||||
public class BasicDataSourceServiceImpl implements DataSourceService {
|
public class BasicDataSourceServiceImpl implements DataSourceService {
|
||||||
private static final String JDBC_DRIVER_NAME = "com.mysql.jdbc.Driver";
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(InetUtils.class); private static final String DEFAULT_MYSQL_DRIVER = "com.mysql.jdbc.Driver";
|
||||||
|
private static final String MYSQL_HIGH_LEVEL_DRIVER = "com.mysql.cj.jdbc.Driver";
|
||||||
|
private static String JDBC_DRIVER_NAME;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JDBC执行超时时间, 单位秒
|
* JDBC执行超时时间, 单位秒
|
||||||
@ -76,9 +82,22 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
private volatile int masterIndex;
|
private volatile int masterIndex;
|
||||||
private static Pattern ipPattern = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
|
private static Pattern ipPattern = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}");
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private Environment env;
|
private Environment env;
|
||||||
|
|
||||||
|
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
Class.forName(MYSQL_HIGH_LEVEL_DRIVER);
|
||||||
|
JDBC_DRIVER_NAME = MYSQL_HIGH_LEVEL_DRIVER;
|
||||||
|
log.info("Use Mysql 8 as the driver");
|
||||||
|
} catch (ClassNotFoundException e) {
|
||||||
|
log.info("Use Mysql as the driver");
|
||||||
|
JDBC_DRIVER_NAME = DEFAULT_MYSQL_DRIVER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
queryTimeout = NumberUtils.toInt(System.getProperty("QUERYTIMEOUT"), 3);
|
queryTimeout = NumberUtils.toInt(System.getProperty("QUERYTIMEOUT"), 3);
|
||||||
@ -242,7 +261,7 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
if (ds == null) {
|
if (ds == null) {
|
||||||
return StringUtils.EMPTY;
|
return StringUtils.EMPTY;
|
||||||
}
|
}
|
||||||
BasicDataSource bds = (BasicDataSource)ds;
|
BasicDataSource bds = (BasicDataSource) ds;
|
||||||
return bds.getUrl();
|
return bds.getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,6 +301,7 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class SelectMasterTask implements Runnable {
|
class SelectMasterTask implements Runnable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
defaultLog.info("check master db.");
|
defaultLog.info("check master db.");
|
||||||
@ -294,7 +314,8 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
testMasterJT.setQueryTimeout(queryTimeout);
|
testMasterJT.setQueryTimeout(queryTimeout);
|
||||||
try {
|
try {
|
||||||
testMasterJT
|
testMasterJT
|
||||||
.update("DELETE FROM config_info WHERE data_id='com.alibaba.nacos.testMasterDB'");
|
.update(
|
||||||
|
"DELETE FROM config_info WHERE data_id='com.alibaba.nacos.testMasterDB'");
|
||||||
if (jt.getDataSource() != ds) {
|
if (jt.getDataSource() != ds) {
|
||||||
fatalLog.warn("[master-db] {}", ds.getUrl());
|
fatalLog.warn("[master-db] {}", ds.getUrl());
|
||||||
}
|
}
|
||||||
@ -317,6 +338,7 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
|
|
||||||
@SuppressWarnings("PMD.ClassNamingShouldBeCamelRule")
|
@SuppressWarnings("PMD.ClassNamingShouldBeCamelRule")
|
||||||
class CheckDBHealthTask implements Runnable {
|
class CheckDBHealthTask implements Runnable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
defaultLog.info("check db health.");
|
defaultLog.info("check db health.");
|
||||||
@ -329,9 +351,11 @@ public class BasicDataSourceServiceImpl implements DataSourceService {
|
|||||||
isHealthList.set(i, Boolean.TRUE);
|
isHealthList.set(i, Boolean.TRUE);
|
||||||
} catch (DataAccessException e) {
|
} catch (DataAccessException e) {
|
||||||
if (i == masterIndex) {
|
if (i == masterIndex) {
|
||||||
fatalLog.error("[db-error] master db {} down.", getIpFromUrl(dataSourceList.get(i).getUrl()));
|
fatalLog.error("[db-error] master db {} down.",
|
||||||
|
getIpFromUrl(dataSourceList.get(i).getUrl()));
|
||||||
} else {
|
} else {
|
||||||
fatalLog.error("[db-error] slave db {} down.", getIpFromUrl(dataSourceList.get(i).getUrl()));
|
fatalLog.error("[db-error] slave db {} down.",
|
||||||
|
getIpFromUrl(dataSourceList.get(i).getUrl()));
|
||||||
}
|
}
|
||||||
isHealthList.set(i, Boolean.FALSE);
|
isHealthList.set(i, Boolean.FALSE);
|
||||||
|
|
||||||
|
@ -94,10 +94,10 @@ fi
|
|||||||
|
|
||||||
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
|
JAVA_MAJOR_VERSION=$($JAVA -version 2>&1 | sed -E -n 's/.* version "([0-9]*).*$/\1/p')
|
||||||
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
|
if [[ "$JAVA_MAJOR_VERSION" -ge "9" ]] ; then
|
||||||
JAVA_OPT="${JAVA_OPT} -cp .:${BASE_DIR}/plugins/cmdb/*.jar"
|
JAVA_OPT="${JAVA_OPT} -cp .:${BASE_DIR}/plugins/cmdb/*.jar:${BASE_DIR}/plugins/mysql/*.jar"
|
||||||
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
|
JAVA_OPT="${JAVA_OPT} -Xlog:gc*:file=${BASE_DIR}/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400"
|
||||||
else
|
else
|
||||||
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${BASE_DIR}/plugins/cmdb"
|
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${BASE_DIR}/plugins/cmdb:${BASE_DIR}/plugins/mysql"
|
||||||
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
JAVA_OPT="${JAVA_OPT} -Xloggc:${BASE_DIR}/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
BIN
distribution/plugins/mysql/mysql-connector-java-5.1.34.jar
Normal file
BIN
distribution/plugins/mysql/mysql-connector-java-5.1.34.jar
Normal file
Binary file not shown.
@ -131,6 +131,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- log -->
|
<!-- log -->
|
||||||
|
Loading…
Reference in New Issue
Block a user