mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
= code cleanup
- for loop replaceable with enhanced 'for' loop - using diamond in generic type - collapse try catch exception - using try-with-resource - using List#sort instead of Collections#sort - replaced lambda with method reference - using native compare method to compare numbers - using switch instead of if for in ESSyncUtil
This commit is contained in:
@@ -81,10 +81,9 @@ public class LocalBinLogConnection implements ErosaConnection {
|
||||
public void dump(String binlogfilename, Long binlogPosition, SinkFunction func) throws IOException {
|
||||
File current = new File(directory, binlogfilename);
|
||||
|
||||
FileLogFetcher fetcher = new FileLogFetcher(bufferSize);
|
||||
LogDecoder decoder = new LogDecoder(LogEvent.UNKNOWN_EVENT, LogEvent.ENUM_END_EVENT);
|
||||
LogContext context = new LogContext();
|
||||
try {
|
||||
try (FileLogFetcher fetcher = new FileLogFetcher(bufferSize)) {
|
||||
LogDecoder decoder = new LogDecoder(LogEvent.UNKNOWN_EVENT, LogEvent.ENUM_END_EVENT);
|
||||
LogContext context = new LogContext();
|
||||
fetcher.open(current, binlogPosition);
|
||||
context.setLogPosition(new LogPosition(binlogfilename, binlogPosition));
|
||||
while (running) {
|
||||
@@ -129,10 +128,6 @@ public class LocalBinLogConnection implements ErosaConnection {
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
logger.warn("LocalBinLogConnection dump interrupted");
|
||||
} finally {
|
||||
if (fetcher != null) {
|
||||
fetcher.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,10 +221,9 @@ public class LocalBinLogConnection implements ErosaConnection {
|
||||
throw new CanalParseException("binlog:" + binlogfilename + " is not found");
|
||||
}
|
||||
|
||||
FileLogFetcher fetcher = new FileLogFetcher(bufferSize);
|
||||
LogDecoder decoder = new LogDecoder(LogEvent.UNKNOWN_EVENT, LogEvent.ENUM_END_EVENT);
|
||||
LogContext context = new LogContext();
|
||||
try {
|
||||
try (FileLogFetcher fetcher = new FileLogFetcher(bufferSize)) {
|
||||
LogDecoder decoder = new LogDecoder(LogEvent.UNKNOWN_EVENT, LogEvent.ENUM_END_EVENT);
|
||||
LogContext context = new LogContext();
|
||||
fetcher.open(current, binlogPosition);
|
||||
context.setLogPosition(new LogPosition(binlogfilename, binlogPosition));
|
||||
while (running) {
|
||||
@@ -273,10 +267,6 @@ public class LocalBinLogConnection implements ErosaConnection {
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
logger.warn("LocalBinLogConnection dump interrupted");
|
||||
} finally {
|
||||
if (fetcher != null) {
|
||||
fetcher.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -191,8 +191,7 @@ public class MysqlConnection implements ErosaConnection {
|
||||
loadBinlogChecksum();
|
||||
sendBinlogDumpGTID(gtidSet);
|
||||
|
||||
DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize());
|
||||
try {
|
||||
try (DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize())) {
|
||||
fetcher.start(connector.getChannel());
|
||||
LogDecoder decoder = new LogDecoder(LogEvent.UNKNOWN_EVENT, LogEvent.ENUM_END_EVENT);
|
||||
LogContext context = new LogContext();
|
||||
@@ -212,8 +211,6 @@ public class MysqlConnection implements ErosaConnection {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
fetcher.close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,8 +226,7 @@ public class MysqlConnection implements ErosaConnection {
|
||||
sendBinlogDump(binlogfilename, binlogPosition);
|
||||
((MysqlMultiStageCoprocessor) coprocessor).setConnection(this);
|
||||
((MysqlMultiStageCoprocessor) coprocessor).setBinlogChecksum(binlogChecksum);
|
||||
DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize());
|
||||
try {
|
||||
try (DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize())) {
|
||||
fetcher.start(connector.getChannel());
|
||||
while (fetcher.fetch()) {
|
||||
accumulateReceivedBytes(fetcher.limit());
|
||||
@@ -240,8 +236,6 @@ public class MysqlConnection implements ErosaConnection {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
fetcher.close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,8 +251,7 @@ public class MysqlConnection implements ErosaConnection {
|
||||
sendBinlogDumpGTID(gtidSet);
|
||||
((MysqlMultiStageCoprocessor) coprocessor).setConnection(this);
|
||||
((MysqlMultiStageCoprocessor) coprocessor).setBinlogChecksum(binlogChecksum);
|
||||
DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize());
|
||||
try {
|
||||
try (DirectLogFetcher fetcher = new DirectLogFetcher(connector.getReceiveBufferSize())) {
|
||||
fetcher.start(connector.getChannel());
|
||||
while (fetcher.fetch()) {
|
||||
accumulateReceivedBytes(fetcher.limit());
|
||||
@@ -268,8 +261,6 @@ public class MysqlConnection implements ErosaConnection {
|
||||
break;
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
fetcher.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -245,18 +245,6 @@ public class MysqlEventParser extends AbstractMysqlEventParser implements CanalE
|
||||
if (haController != null && haController instanceof HeartBeatCallback) {
|
||||
((HeartBeatCallback) haController).onSuccess(costTime);
|
||||
}
|
||||
} catch (SocketTimeoutException e) {
|
||||
if (haController != null && haController instanceof HeartBeatCallback) {
|
||||
((HeartBeatCallback) haController).onFailed(e);
|
||||
}
|
||||
reconnect = true;
|
||||
logger.warn("connect failed by ", e);
|
||||
} catch (IOException e) {
|
||||
if (haController != null && haController instanceof HeartBeatCallback) {
|
||||
((HeartBeatCallback) haController).onFailed(e);
|
||||
}
|
||||
reconnect = true;
|
||||
logger.warn("connect failed by ", e);
|
||||
} catch (Throwable e) {
|
||||
if (haController != null && haController instanceof HeartBeatCallback) {
|
||||
((HeartBeatCallback) haController).onFailed(e);
|
||||
|
||||
@@ -150,11 +150,7 @@ public class DirectLogFetcher extends LogFetcher {
|
||||
close(); /* Do cleanup */
|
||||
logger.error("Socket timeout expired, closing connection", e);
|
||||
throw e;
|
||||
} catch (InterruptedIOException e) {
|
||||
close(); /* Do cleanup */
|
||||
logger.info("I/O interrupted while reading from client socket", e);
|
||||
throw e;
|
||||
} catch (ClosedByInterruptException e) {
|
||||
} catch (InterruptedIOException | ClosedByInterruptException e) {
|
||||
close(); /* Do cleanup */
|
||||
logger.info("I/O interrupted while reading from client socket", e);
|
||||
throw e;
|
||||
|
||||
@@ -230,7 +230,7 @@ public class BinLogFileQueue {
|
||||
}
|
||||
}, null));
|
||||
// 排一下序列
|
||||
Collections.sort(files, Comparator.comparing(File::getName));
|
||||
files.sort(Comparator.comparing(File::getName));
|
||||
return files;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,8 +56,7 @@ public class HttpHelper {
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
HttpClientContext context = HttpClientContext.create();
|
||||
context.setRequestConfig(config);
|
||||
CloseableHttpResponse response = httpclient.execute(httpGet, context);
|
||||
try {
|
||||
try (CloseableHttpResponse response = httpclient.execute(httpGet, context)) {
|
||||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
long end = System.currentTimeMillis();
|
||||
long cost = end - start;
|
||||
@@ -69,10 +68,9 @@ public class HttpHelper {
|
||||
} else {
|
||||
String errorMsg = EntityUtils.toString(response.getEntity());
|
||||
throw new RuntimeException("requestGet remote error, url=" + uri.toString() + ", code=" + statusCode
|
||||
+ ", error msg=" + errorMsg);
|
||||
+ ", error msg=" + errorMsg);
|
||||
}
|
||||
} finally {
|
||||
response.close();
|
||||
httpGet.releaseConnection();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ public class PeriodMixedLogPositionManager extends AbstractLogPositionManager {
|
||||
|
||||
// 启动定时工作任务
|
||||
executorService.scheduleAtFixedRate(() -> {
|
||||
List<String> tasks = new ArrayList<String>(persistTasks);
|
||||
List<String> tasks = new ArrayList<>(persistTasks);
|
||||
for (String destination : tasks) {
|
||||
try {
|
||||
// 定时将内存中的最新值刷到zookeeper中,多次变更只刷一次
|
||||
|
||||
@@ -22,8 +22,7 @@ public class MysqlBinlogEventPerformanceTest {
|
||||
protected static Charset charset = Charset.forName("utf-8");
|
||||
|
||||
public static void main(String args[]) {
|
||||
DirectLogFetcher fetcher = new DirectLogFetcher();
|
||||
try {
|
||||
try (DirectLogFetcher fetcher = new DirectLogFetcher()) {
|
||||
MysqlConnector connector = new MysqlConnector(new InetSocketAddress("127.0.0.1", 3306), "root", "hello");
|
||||
connector.connect();
|
||||
updateSettings(connector);
|
||||
@@ -49,11 +48,6 @@ public class MysqlBinlogEventPerformanceTest {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
fetcher.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ public class MysqlBinlogParsePerformanceTest {
|
||||
protected static Charset charset = Charset.forName("utf-8");
|
||||
|
||||
public static void main(String args[]) {
|
||||
DirectLogFetcher fetcher = new DirectLogFetcher();
|
||||
try {
|
||||
try (DirectLogFetcher fetcher = new DirectLogFetcher()) {
|
||||
MysqlConnector connector = new MysqlConnector(new InetSocketAddress("127.0.0.1", 3306), "root", "hello");
|
||||
connector.connect();
|
||||
updateSettings(connector);
|
||||
@@ -45,9 +44,7 @@ public class MysqlBinlogParsePerformanceTest {
|
||||
Thread thread = new Thread(() -> {
|
||||
try {
|
||||
consumer(buffer);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InterruptedException e) {
|
||||
} catch (IOException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
@@ -59,11 +56,6 @@ public class MysqlBinlogParsePerformanceTest {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
fetcher.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user