Skip to content

Commit

Permalink
enable the service to support multiple namesrvs
Browse files Browse the repository at this point in the history
  • Loading branch information
cserwen authored and dengzhiwen1 committed Jan 4, 2022
1 parent 1caeb4c commit a7f7035
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -29,6 +30,7 @@
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;

Expand Down Expand Up @@ -57,6 +59,8 @@ public class RMQConfigure {

private Long timeoutMillis;

private String namesrvAddrs;

public String getAccessKey() {
return accessKey;
}
Expand All @@ -77,6 +81,20 @@ public String getNamesrvAddr() {
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ 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
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
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/static/src/ops.js
Original file line number Diff line number Diff line change
Expand Up @@ -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});
}
Expand All @@ -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});
Expand Down
8 changes: 5 additions & 3 deletions src/main/resources/static/view/pages/ops.html
Original file line number Diff line number Diff line change
Expand Up @@ -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}}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ protected void mockRmqConfigure() {
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);
}
Expand Down

0 comments on commit a7f7035

Please sign in to comment.