mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
canal-admin完善 (#2121)
* admin端口调整完成 * server端适配调整 * 调整部分功能 * 单机/集群admin调试完成 * 重新发布前端页面
This commit is contained in:
@@ -2,6 +2,8 @@ package com.alibaba.otter.canal.instance.manager.plain;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.HashMap;
|
||||
@@ -19,7 +21,7 @@ import com.alibaba.otter.canal.protocol.SecurityUtil;
|
||||
|
||||
/**
|
||||
* 远程配置获取
|
||||
*
|
||||
*
|
||||
* @author rewerma 2019-01-25 下午05:20:16
|
||||
* @author agapple 2019年8月26日 下午7:52:06
|
||||
* @since 1.1.4
|
||||
@@ -31,8 +33,10 @@ public class PlainCanalConfigClient extends AbstractCanalLifeCycle implements Ca
|
||||
private String user;
|
||||
private String passwd;
|
||||
private HttpHelper httpHelper;
|
||||
private String localIp;
|
||||
private int adminPort;
|
||||
|
||||
public PlainCanalConfigClient(String configURL, String user, String passwd){
|
||||
public PlainCanalConfigClient(String configURL, String user, String passwd, String localIp, int adminPort){
|
||||
this.configURL = configURL;
|
||||
if (!StringUtils.startsWithIgnoreCase(configURL, "http")) {
|
||||
this.configURL = "http://" + configURL;
|
||||
@@ -42,6 +46,16 @@ public class PlainCanalConfigClient extends AbstractCanalLifeCycle implements Ca
|
||||
this.user = user;
|
||||
this.passwd = passwd;
|
||||
this.httpHelper = new HttpHelper();
|
||||
if (StringUtils.isNotEmpty(localIp)) {
|
||||
this.localIp = localIp;
|
||||
} else {
|
||||
try {
|
||||
this.localIp = InetAddress.getLocalHost().getHostAddress();
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
this.adminPort = adminPort;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,7 +67,7 @@ public class PlainCanalConfigClient extends AbstractCanalLifeCycle implements Ca
|
||||
if (StringUtils.isEmpty(md5)) {
|
||||
md5 = "";
|
||||
}
|
||||
String url = configURL + "/api/v1/config/server_polling?md5=" + md5;
|
||||
String url = configURL + "/api/v1/config/server_polling?ip=" + localIp + "&port=" + adminPort + "&md5=" + md5;
|
||||
return queryConfig(url);
|
||||
}
|
||||
|
||||
@@ -71,11 +85,12 @@ public class PlainCanalConfigClient extends AbstractCanalLifeCycle implements Ca
|
||||
/**
|
||||
* 返回需要运行的instance列表
|
||||
*/
|
||||
public String findInstances(String ip, String port, String md5) {
|
||||
public String findInstances(String md5) {
|
||||
if (StringUtils.isEmpty(md5)) {
|
||||
md5 = "";
|
||||
}
|
||||
String url = configURL + "/api/v1/config/instances_polling?md5=" + md5 + "&ip=" + ip + "&port=" + port;
|
||||
String url = configURL + "/api/v1/config/instances_polling?md5=" + md5 + "&ip=" + localIp + "&port="
|
||||
+ adminPort;
|
||||
ResponseModel<CanalConfig> config = doQuery(url);
|
||||
if (config.data != null) {
|
||||
return config.data.content;
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
package com.alibaba.otter.canal.instance.manager;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import com.alibaba.otter.canal.instance.manager.plain.PlainCanal;
|
||||
import com.alibaba.otter.canal.instance.manager.plain.PlainCanalConfigClient;
|
||||
|
||||
@Ignore
|
||||
public class PlainCanalConfigClientIntegration {
|
||||
|
||||
@Test
|
||||
public void testSimple() {
|
||||
PlainCanalConfigClient client = new PlainCanalConfigClient("http://127.0.0.1:8089",
|
||||
"admin",
|
||||
"4ACFE3202A5FF5CF467898FC58AAB1D615029441");
|
||||
"4ACFE3202A5FF5CF467898FC58AAB1D615029441",
|
||||
"127.0.0.1",
|
||||
11110);
|
||||
|
||||
PlainCanal plain = client.findServer(null);
|
||||
Assert.notNull(plain);
|
||||
@@ -20,8 +24,11 @@ public class PlainCanalConfigClientIntegration {
|
||||
plain = client.findServer(plain.getMd5());
|
||||
Assert.isNull(plain);
|
||||
|
||||
plain = client.findInstance("example", null);
|
||||
Assert.notNull(plain);
|
||||
String instances = client.findInstances(null);
|
||||
Assert.notNull(instances);
|
||||
|
||||
plain = client.findInstance("example", null);
|
||||
Assert.notNull(plain);
|
||||
|
||||
plain = client.findInstance("example", plain.getMd5());
|
||||
Assert.isNull(plain);
|
||||
|
||||
Reference in New Issue
Block a user