/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.rocketmq.console.service.client;
import com.google.common.base.Throwables;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.apache.rocketmq.client.QueryResult;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.impl.MQAdminImpl;
import org.apache.rocketmq.common.TopicConfig;
import org.apache.rocketmq.common.admin.ConsumeStats;
import org.apache.rocketmq.common.admin.RollbackStats;
import org.apache.rocketmq.common.admin.TopicStatsTable;
import org.apache.rocketmq.common.message.MessageClientIDSetter;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.common.message.MessageQueue;
import org.apache.rocketmq.common.protocol.RequestCode;
import org.apache.rocketmq.common.protocol.ResponseCode;
import org.apache.rocketmq.common.protocol.body.BrokerStatsData;
import org.apache.rocketmq.common.protocol.body.ClusterInfo;
import org.apache.rocketmq.common.protocol.body.ConsumeMessageDirectlyResult;
import org.apache.rocketmq.common.protocol.body.ConsumeStatsList;
import org.apache.rocketmq.common.protocol.body.ConsumerConnection;
import org.apache.rocketmq.common.protocol.body.ConsumerRunningInfo;
import org.apache.rocketmq.common.protocol.body.GroupList;
import org.apache.rocketmq.common.protocol.body.KVTable;
import org.apache.rocketmq.common.protocol.body.ProducerConnection;
import org.apache.rocketmq.common.protocol.body.QueueTimeSpan;
import org.apache.rocketmq.common.protocol.body.SubscriptionGroupWrapper;
import org.apache.rocketmq.common.protocol.body.TopicConfigSerializeWrapper;
import org.apache.rocketmq.common.protocol.body.TopicList;
import org.apache.rocketmq.common.protocol.route.TopicRouteData;
import org.apache.rocketmq.common.subscription.SubscriptionGroupConfig;
import org.apache.rocketmq.console.util.JsonUtil;
import org.apache.rocketmq.remoting.RemotingClient;
import org.apache.rocketmq.remoting.exception.RemotingCommandException;
import org.apache.rocketmq.remoting.exception.RemotingConnectException;
import org.apache.rocketmq.remoting.exception.RemotingException;
import org.apache.rocketmq.remoting.exception.RemotingSendRequestException;
import org.apache.rocketmq.remoting.exception.RemotingTimeoutException;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.tools.admin.MQAdminExt;
import org.apache.rocketmq.tools.admin.api.MessageTrack;
import org.joor.Reflect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import static org.apache.rocketmq.remoting.protocol.RemotingSerializable.decode;
@Service
public class MQAdminExtImpl implements MQAdminExt {
private Logger logger = LoggerFactory.getLogger(MQAdminExtImpl.class);
public MQAdminExtImpl() {
}
@Override
public void updateBrokerConfig(String brokerAddr, Properties properties)
throws RemotingConnectException, RemotingSendRequestException, RemotingTimeoutException,
UnsupportedEncodingException, InterruptedException, MQBrokerException {
MQAdminInstance.threadLocalMQAdminExt().updateBrokerConfig(brokerAddr, properties);
}
@Override
public void createAndUpdateTopicConfig(String addr, TopicConfig config)
throws RemotingException, MQBrokerException, InterruptedException, MQClientException {
MQAdminInstance.threadLocalMQAdminExt().createAndUpdateTopicConfig(addr, config);
}
@Override
public void createAndUpdateSubscriptionGroupConfig(String addr, SubscriptionGroupConfig config)
throws RemotingException, MQBrokerException, InterruptedException, MQClientException {
MQAdminInstance.threadLocalMQAdminExt().createAndUpdateSubscriptionGroupConfig(addr, config);
}
@Override
public SubscriptionGroupConfig examineSubscriptionGroupConfig(String addr, String group) {
RemotingClient remotingClient = MQAdminInstance.threadLocalRemotingClient();
RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_ALL_SUBSCRIPTIONGROUP_CONFIG, null);
RemotingCommand response = null;
try {
response = remotingClient.invokeSync(addr, request, 3000);
}
catch (Exception err) {
throw Throwables.propagate(err);
}
assert response != null;
switch (response.getCode()) {
case ResponseCode.SUCCESS: {
SubscriptionGroupWrapper subscriptionGroupWrapper = decode(response.getBody(), SubscriptionGroupWrapper.class);
return subscriptionGroupWrapper.getSubscriptionGroupTable().get(group);
}
default:
throw Throwables.propagate(new MQBrokerException(response.getCode(), response.getRemark()));
}
}
@Override
public TopicConfig examineTopicConfig(String addr, String topic) {
RemotingClient remotingClient = MQAdminInstance.threadLocalRemotingClient();
RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_ALL_TOPIC_CONFIG, null);
RemotingCommand response = null;
try {
response = remotingClient.invokeSync(addr, request, 3000);
}
catch (Exception err) {
throw Throwables.propagate(err);
}
switch (response.getCode()) {
case ResponseCode.SUCCESS: {
TopicConfigSerializeWrapper topicConfigSerializeWrapper = decode(response.getBody(), TopicConfigSerializeWrapper.class);
return topicConfigSerializeWrapper.getTopicConfigTable().get(topic);
}
default:
throw Throwables.propagate(new MQBrokerException(response.getCode(), response.getRemark()));
}
}
@Override
public TopicStatsTable examineTopicStats(String topic)
throws RemotingException, MQClientException, InterruptedException, MQBrokerException {
return MQAdminInstance.threadLocalMQAdminExt().examineTopicStats(topic);
}
@Override
public TopicList fetchAllTopicList() throws RemotingException, MQClientException, InterruptedException {
TopicList topicList = MQAdminInstance.threadLocalMQAdminExt().fetchAllTopicList();
logger.debug("op=look={}", JsonUtil.obj2String(topicList.getTopicList()));
return topicList;
}
@Override
public KVTable fetchBrokerRuntimeStats(String brokerAddr)
throws RemotingConnectException, RemotingSendRequestException, RemotingTimeoutException,
InterruptedException, MQBrokerException {
return MQAdminInstance.threadLocalMQAdminExt().fetchBrokerRuntimeStats(brokerAddr);
}
@Override
public ConsumeStats examineConsumeStats(String consumerGroup)
throws RemotingException, MQClientException, InterruptedException, MQBrokerException {
return MQAdminInstance.threadLocalMQAdminExt().examineConsumeStats(consumerGroup);
}
@Override
public ConsumeStats examineConsumeStats(String consum
没有合适的资源?快使用搜索试试~ 我知道了~
release-rocketmq-console-1.0.0
共2000个文件
js:1658个
class:102个
xml:98个
需积分: 18 2 下载量 173 浏览量
2022-04-22
09:33:46
上传
评论
收藏 38.41MB RAR 举报
温馨提示
rocketmq控制台项目 1、解压直接导入到项目中; 2、修改application.properties配置,其中server.port配置项目端口号,rocketmq.config.namesrvAddr配置mq的地址和端口,其余无需改动; 3、通过类APP的main直接启动即可; 4、访问配置对应的端口号即可打开控制台; 5、控制台操作MQ。
资源详情
资源评论
资源推荐
收起资源包目录
release-rocketmq-console-1.0.0 (2000个子文件)
$PROJECT_FILE$ 364B
checkstyle-cachefile 10KB
MQAdminExtImpl.class 19KB
ConsumerServiceImpl.class 17KB
DashboardCollectTask.class 14KB
MessageServiceImpl.class 8KB
TopicServiceImpl.class 8KB
ConsumerServiceImplTest.class 8KB
JsonUtil.class 7KB
DashboardCollectServiceImpl.class 7KB
TopicServiceImplTest.class 6KB
RocketMQConsoleTestBase.class 6KB
RocketMQUtil.class 6KB
TestRocketMQServer.class 6KB
ConsumerController.class 5KB
TopicController.class 5KB
MessageServiceImplTest.class 5KB
MessageView.class 5KB
WebStaticApplicationTests.class 4KB
MonitorServiceImpl.class 4KB
MessageController.class 4KB
ClusterServiceImpl.class 4KB
TestController.class 3KB
DashboardServiceImpl.class 3KB
MQAdminInstance.class 3KB
OpsServiceImpl.class 3KB
GlobalRestfulResponseBodyAdvice.class 3KB
MQAdminAspect.class 3KB
TopicConfigInfo.class 3KB
RMQConfigure.class 3KB
ProducerServiceImplTest.class 3KB
GroupConsumeInfo.class 3KB
MonitorController.class 2KB
ConnectionInfo.class 2KB
TestController$2.class 2KB
MonitorTask.class 2KB
QueueStatInfo.class 2KB
AbstractCommonService.class 2KB
ClusterServiceImplTest.class 2KB
OpsServiceImplTest.class 2KB
RocketMQConsoleTestBase$1.class 2KB
ConsumerService.class 2KB
TestController$1.class 2KB
MessageServiceImplTest$5.class 2KB
GlobalExceptionHandler.class 2KB
MessageServiceImplTest$1.class 2KB
DashboardController.class 2KB
OpsController.class 2KB
angular-material.min.css 402KB
angular-material.min.css 402KB
bootstrap.css 144KB
bootstrap.css 144KB
bootstrap.min.css 122KB
bootstrap.min.css 122KB
bootstrap-material-design.css 105KB
bootstrap-material-design.css 105KB
bootstrap-material-design.css 94KB
bootstrap-material-design.css 94KB
bootstrap-material-design.min.css 92KB
bootstrap-material-design.min.css 92KB
btn.css 40KB
btn.css 40KB
font-awesome.css 37KB
font-awesome.css 37KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
bootstrap-theme.css 26KB
bootstrap-theme.css 26KB
docs.css 23KB
docs.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-theme.min.css 23KB
chosen.css 14KB
chosen.css 14KB
ladda.css 12KB
ladda.css 12KB
main.css 10KB
main.css 10KB
ladda-themeless.css 10KB
ladda-themeless.css 10KB
normalize.css 9KB
normalize.css 9KB
ladda.min.css 9KB
ladda.min.css 9KB
bootstrap-datetimepicker.min.css 8KB
bootstrap-datetimepicker.min.css 8KB
ladda-themeless.min.css 8KB
ladda-themeless.min.css 8KB
default.css 5KB
default.css 5KB
app.css 5KB
app.css 5KB
ngDialog-theme-default.css 4KB
ngDialog-theme-default.css 4KB
timeline.css 3KB
timeline.css 3KB
jquery.dropdown.css 2KB
jquery.dropdown.css 2KB
angular-ui-notification.css 2KB
angular-ui-notification.css 2KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
Hui忆里的疯狂、
- 粉丝: 2
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0