/**
* 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.pulsar.broker.admin.impl;
import static org.apache.pulsar.broker.cache.ConfigurationCacheService.POLICIES;
import static org.apache.pulsar.common.util.Codec.decode;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.github.zafarkhaja.semver.Version;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import io.netty.buffer.ByteBuf;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiConsumer;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.container.AsyncResponse;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.StreamingOutput;
import org.apache.bookkeeper.mledger.AsyncCallbacks;
import org.apache.bookkeeper.mledger.AsyncCallbacks.ManagedLedgerInfoCallback;
import org.apache.bookkeeper.mledger.Entry;
import org.apache.bookkeeper.mledger.LedgerOffloader;
import org.apache.bookkeeper.mledger.ManagedLedgerConfig;
import org.apache.bookkeeper.mledger.ManagedLedgerException;
import org.apache.bookkeeper.mledger.ManagedLedgerException.MetadataNotFoundException;
import org.apache.bookkeeper.mledger.ManagedLedgerInfo;
import org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl;
import org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl;
import org.apache.bookkeeper.mledger.impl.ManagedLedgerOfflineBacklog;
import org.apache.bookkeeper.mledger.impl.PositionImpl;
import org.apache.commons.lang3.StringUtils;
import org.apache.pulsar.broker.PulsarServerException;
import org.apache.pulsar.broker.PulsarService;
import org.apache.pulsar.broker.admin.AdminResource;
import org.apache.pulsar.broker.admin.ZkAdminPaths;
import org.apache.pulsar.broker.authentication.AuthenticationDataSource;
import org.apache.pulsar.broker.service.BrokerServiceException;
import org.apache.pulsar.broker.service.BrokerServiceException.AlreadyRunningException;
import org.apache.pulsar.broker.service.BrokerServiceException.NotAllowedException;
import org.apache.pulsar.broker.service.BrokerServiceException.SubscriptionBusyException;
import org.apache.pulsar.broker.service.BrokerServiceException.SubscriptionInvalidCursorPosition;
import org.apache.pulsar.broker.service.BrokerServiceException.TopicBusyException;
import org.apache.pulsar.broker.service.Subscription;
import org.apache.pulsar.broker.service.Topic;
import org.apache.pulsar.broker.service.persistent.PersistentReplicator;
import org.apache.pulsar.broker.service.persistent.PersistentSubscription;
import org.apache.pulsar.broker.service.persistent.PersistentTopic;
import org.apache.pulsar.broker.web.RestException;
import org.apache.pulsar.client.admin.LongRunningProcessStatus;
import org.apache.pulsar.client.admin.OffloadProcessStatus;
import org.apache.pulsar.client.admin.PulsarAdmin;
import org.apache.pulsar.client.admin.PulsarAdminException;
import org.apache.pulsar.client.admin.PulsarAdminException.NotFoundException;
import org.apache.pulsar.client.admin.PulsarAdminException.PreconditionFailedException;
import org.apache.pulsar.client.api.MessageId;
import org.apache.pulsar.client.api.PulsarClientException;
import org.apache.pulsar.client.impl.MessageIdImpl;
import org.apache.pulsar.common.allocator.PulsarByteBufAllocator;
import org.apache.pulsar.common.api.proto.CommandSubscribe.InitialPosition;
import org.apache.pulsar.common.api.proto.KeyValue;
import org.apache.pulsar.common.api.proto.MessageMetadata;
import org.apache.pulsar.common.compression.CompressionCodec;
import org.apache.pulsar.common.compression.CompressionCodecProvider;
import org.apache.pulsar.common.naming.PartitionedManagedLedgerInfo;
import org.apache.pulsar.common.naming.TopicDomain;
import org.apache.pulsar.common.naming.TopicName;
import org.apache.pulsar.common.partition.PartitionedTopicMetadata;
import org.apache.pulsar.common.policies.data.AuthAction;
import org.apache.pulsar.common.policies.data.AuthPolicies;
import org.apache.pulsar.common.policies.data.BacklogQuota;
import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies;
import org.apache.pulsar.common.policies.data.DispatchRate;
import org.apache.pulsar.common.policies.data.InactiveTopicPolicies;
import org.apache.pulsar.common.policies.data.OffloadPolicies;
import org.apache.pulsar.common.policies.data.PartitionedTopicInternalStats;
import org.apache.pulsar.common.policies.data.PartitionedTopicStats;
import org.apache.pulsar.common.policies.data.PersistencePolicies;
import org.apache.pulsar.common.policies.data.PersistentOfflineTopicStats;
import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats;
import org.apache.pulsar.common.policies.data.Policies;
import org.apache.pulsar.common.policies.data.PublishRate;
import org.apache.pulsar.common.policies.data.RetentionPolicies;
import org.apache.pulsar.common.policies.data.SubscribeRate;
import org.apache.pulsar.common.policies.data.SubscriptionStats;
import org.apache.pulsar.common.policies.data.TopicPolicies;
import org.apache.pulsar.common.policies.data.TopicStats;
import org.apache.pulsar.common.protocol.Commands;
import org.apache.pulsar.common.util.DateFormatter;
import org.apache.pulsar.common.util.FutureUtil;
import org.apache.pulsar.common.util.collections.BitSetRecyclable;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*/
public class PersistentTopicsBase extends AdminResource {
private static final Logger log = LoggerFactory.getLogger(PersistentTopicsBase.class);
private static final int OFFLINE_TOPIC_STAT_TTL_MINS = 10;
private static final String DEPRECATED_CLIENT_VERSION_PREFIX = "Pulsar-CPP-v";
private static final Version LEAST_SUPPORTED_CLIENT_VERSION_PREFIX = Version.forIntegers(1, 21);
protected List<String> internalGetList() {
validateAdminAccessForTenant(namespaceName.getTenant());
// Validate that namespace exists, throws 404 if it doesn't exist
try {
policiesCache().get(path(POLICIES, namespaceName.toString()));
} catch (KeeperException.NoNodeException e) {
log.warn("[{}] Failed to get topic list {}: Namespace does not exist", clientAppId(), namespaceName);
throw new RestException(Status.NOT_FOUND, "Namespace does not exist");
} catch (Exception e) {
log.error("[{}] Failed to get topic list {}", clientAppId(), namespaceName, e);
throw new RestException(e);
}
List<String> topics = Lists.newArrayList();
try {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Pulsar是具有非常灵活的消息传递模型和直观的客户端API的分布式pub-sub消息传递平台。 在了解有关Pulsar的更多信息 主要特点 水平可扩展(每秒数百万个独立主题和数百万条消息发布) 强大的订购和一致性保证 低延迟持久存储 主题和队列语义 负载均衡器 设计为作为托管服务进行部署: 多租户 认证方式 授权书 配额 支持混合非常不同的工作负载 可选的硬件隔离 跟踪消费者光标位置 REST API用于配置,管理和统计 地理复制 透明处理分区主题 透明批处理邮件 储存库 该存储库是Apache Pulsar的主要存储库。 Pulsar PMC还为Pulsar生态系统中的组件维护其他存储库,包括连接器,适配器和其他语言客户端。 舵图 生态系统 客户群 仪表板和管理工具 文献资料 CI / CD 建立脉冲星 要求: Java 8 JDK(用于构建Pulsar) 在更高版本(高于
资源详情
资源评论
资源推荐
收起资源包目录
脉冲星:Apache Pulsar-分布式发布订阅消息系统 (2000个子文件)
lz4.c 54KB
SampleConsumerCApi.c 2KB
SampleConsumerListenerCApi.c 2KB
SampleProducerCApi.c 2KB
SampleReaderCApi.c 2KB
stylesheet.css 5KB
custom.css 3KB
additional.css 2KB
code-blocks-buttons.css 638B
Function.pb.go 87KB
InstanceCommunication.pb.go 49KB
instance.go 20KB
stats.go 12KB
Request.pb.go 10KB
stats_test.go 7KB
context.go 7KB
function.go 6KB
conf.go 5KB
function_test.go 5KB
log.go 5KB
instanceConf.go 4KB
topicName.go 3KB
instance_test.go 3KB
topicName_test.go 3KB
context_test.go 3KB
instanceConf_test.go 3KB
instanceControlServicer.go 3KB
mockMessage_test.go 3KB
instanceControlServicer_test.go 2KB
logAppender.go 2KB
util_test.go 2KB
doc.go 1KB
publishFunc.go 1KB
util.go 1KB
contextFunc.go 1KB
logFunc.go 1KB
exclamationFunc.go 1KB
outputFunc.go 1KB
inputFunc.go 1KB
hello.go 981B
lz4.h 19KB
Consumer.h 12KB
consumer_configuration.h 12KB
ClientConnection.h 12KB
ConsumerConfiguration.h 11KB
ConsumerImpl.h 10KB
consumer.h 10KB
ProducerConfiguration.h 10KB
Client.h 9KB
producer_configuration.h 9KB
BlockingQueue.h 8KB
Authentication.h 8KB
client.h 8KB
ReaderConfiguration.h 8KB
message.h 7KB
MultiTopicsConsumerImpl.h 7KB
ObjectPool.h 7KB
SharedBuffer.h 7KB
Producer.h 6KB
ClientConfiguration.h 6KB
Commands.h 6KB
ClientImpl.h 6KB
PartitionedConsumerImpl.h 6KB
client_configuration.h 6KB
Message.h 6KB
MessageCrypto.h 6KB
BatchMessageContainerBase.h 5KB
ProducerImpl.h 5KB
producer.h 5KB
MessageBuilder.h 5KB
Result.h 5KB
BrokerConsumerStatsImpl.h 5KB
LogUtils.h 5KB
Reader.h 4KB
PartitionedProducerImpl.h 4KB
PulsarFriend.h 4KB
Future.h 4KB
AckGroupingTracker.h 4KB
UnboundedBlockingQueue.h 4KB
result.h 4KB
BatchAcknowledgementTracker.h 4KB
reader_configuration.h 4KB
ProducerStatsImpl.h 4KB
BinaryProtoLookupService.h 3KB
MultiTopicsBrokerConsumerStatsImpl.h 3KB
PartitionedBrokerConsumerStatsImpl.h 3KB
BrokerConsumerStats.h 3KB
HandlerBase.h 3KB
PatternMultiTopicsConsumerImpl.h 3KB
Schema.h 3KB
AckGroupingTrackerEnabled.h 3KB
CryptoKeyReader.h 3KB
ExecutorService.h 3KB
MessageId.h 3KB
ConsumerStatsImpl.h 3KB
CompressionCodec.h 3KB
LookupDataResult.h 3KB
TopicName.h 3KB
ConsumerImplBase.h 3KB
Utils.h 3KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
giao金
- 粉丝: 31
- 资源: 4604
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0