mirror of
https://github.com/apache/rocketmq-dashboard.git
synced 2025-09-10 11:40:01 +08:00
* enable the service to support multiple namesrvs * use @ to split the namesrv of different clusters Co-authored-by: dengzhiwen1 <dengzhiwen1@xiaomi.com>
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
package org.apache.rocketmq.dashboard.config;
|
||||
|
||||
import com.google.common.base.Splitter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.rocketmq.common.MixAll;
|
||||
import org.slf4j.Logger;
|
||||
@@ -29,6 +30,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.rocketmq.client.ClientConfig.SEND_MESSAGE_WITH_VIP_CHANNEL_PROPERTY;
|
||||
|
||||
@@ -57,6 +59,8 @@ public class RMQConfigure {
|
||||
|
||||
private Long timeoutMillis;
|
||||
|
||||
private String namesrvAddrs;
|
||||
|
||||
public String getAccessKey() {
|
||||
return accessKey;
|
||||
}
|
||||
@@ -77,6 +81,20 @@ public class RMQConfigure {
|
||||
return namesrvAddr;
|
||||
}
|
||||
|
||||
public String getNamesrvAddrs() {
|
||||
return namesrvAddrs;
|
||||
}
|
||||
|
||||
public void setNamesrvAddrs(String namesrvAddrs) {
|
||||
if (StringUtils.isNotBlank(namesrvAddrs)) {
|
||||
this.namesrvAddrs = namesrvAddrs;
|
||||
List<String> nameSrvAddrList = Splitter.on("@").splitToList(this.namesrvAddrs);
|
||||
if (!nameSrvAddrList.isEmpty()) {
|
||||
this.setNamesrvAddr(nameSrvAddrList.get(0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setNamesrvAddr(String namesrvAddr) {
|
||||
if (StringUtils.isNotBlank(namesrvAddr)) {
|
||||
this.namesrvAddr = namesrvAddr;
|
||||
|
@@ -46,7 +46,8 @@ public class OpsServiceImpl extends AbstractCommonService implements OpsService
|
||||
@Override
|
||||
public Map<String, Object> homePageInfo() {
|
||||
Map<String, Object> homePageInfoMap = Maps.newHashMap();
|
||||
homePageInfoMap.put("namesvrAddrList", Splitter.on(";").splitToList(configure.getNamesrvAddr()));
|
||||
homePageInfoMap.put("currentNamesrv", configure.getNamesrvAddr());
|
||||
homePageInfoMap.put("namesvrAddrList", Splitter.on("@").splitToList(configure.getNamesrvAddrs()));
|
||||
homePageInfoMap.put("useVIPChannel", Boolean.valueOf(configure.getIsVIPChannel()));
|
||||
homePageInfoMap.put("useTLS", configure.isUseTLS());
|
||||
return homePageInfoMap;
|
||||
|
@@ -31,8 +31,9 @@ spring.http.encoding.enabled=true
|
||||
spring.http.encoding.force=true
|
||||
logging.level.root=INFO
|
||||
logging.config=classpath:logback.xml
|
||||
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
|
||||
rocketmq.config.namesrvAddr=
|
||||
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, default localhost:9876
|
||||
#use @ to distinct the namesrv of different clusters
|
||||
rocketmq.config.namesrvAddrs=
|
||||
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
|
||||
rocketmq.config.isVIPChannel=
|
||||
#timeout for mqadminExt, default 5000ms
|
||||
|
@@ -30,6 +30,7 @@ app.controller('opsController', ['$scope', '$location', '$http', 'Notification',
|
||||
$scope.namesvrAddrList = resp.data.namesvrAddrList;
|
||||
$scope.useVIPChannel = resp.data.useVIPChannel;
|
||||
$scope.useTLS = resp.data.useTLS;
|
||||
$scope.selectedNamesrv = resp.data.currentNamesrv;
|
||||
} else {
|
||||
Notification.error({message: resp.errMsg, delay: 2000});
|
||||
}
|
||||
@@ -43,7 +44,7 @@ app.controller('opsController', ['$scope', '$location', '$http', 'Notification',
|
||||
$http({
|
||||
method: "POST",
|
||||
url: "ops/updateNameSvrAddr.do",
|
||||
params: {nameSvrAddrList: $scope.namesvrAddrList.join(";")}
|
||||
params: {nameSvrAddrList: $scope.selectedNamesrv}
|
||||
}).success(function (resp) {
|
||||
if (resp.status == 0) {
|
||||
Notification.info({message: "SUCCESS", delay: 2000});
|
||||
|
@@ -17,9 +17,11 @@
|
||||
<div class="container-fluid" id="deployHistoryList">
|
||||
<div class="page-content">
|
||||
<h2 class="md-title">NameServerAddressList</h2>
|
||||
<div class="pull-left">
|
||||
<md-chips ng-model="namesvrAddrList" md-on-add="eleChange(namesvrAddrList)"
|
||||
md-on-remove="eleChange(namesvrAddrList)" readonly="inputReadonly" md-removable="ctrl.removable"></md-chips>
|
||||
<div class="pull-left" style="min-width: 400px; max-width: 500px; padding: 10px 10px 10px 0">
|
||||
<select ng-model="selectedNamesrv" chosen
|
||||
ng-options="x for x in namesvrAddrList"
|
||||
ng-change="updateNameSvrAddr()"
|
||||
required></select>
|
||||
</div>
|
||||
<div class="pull-left">
|
||||
<button class="btn btn-raised btn-sm btn-primary" type="button" ng-show="{{writeOperationEnabled}}"
|
||||
|
@@ -62,6 +62,7 @@ public abstract class BaseControllerTest extends BaseTest {
|
||||
when(configure.getAccessKey()).thenReturn("12345678");
|
||||
when(configure.getSecretKey()).thenReturn("rocketmq");
|
||||
when(configure.getNamesrvAddr()).thenReturn("127.0.0.1:9876");
|
||||
when(configure.getNamesrvAddrs()).thenReturn("127.0.0.1:9876");
|
||||
when(configure.isACLEnabled()).thenReturn(true);
|
||||
when(configure.isUseTLS()).thenReturn(false);
|
||||
}
|
||||
|
Reference in New Issue
Block a user