當前位置:首頁 » 文件管理 » topic是什麼文件可以刪嗎
擴展閱讀
表格怎樣算方差 2025-07-10 07:40:59

topic是什麼文件可以刪嗎

發布時間: 2022-11-06 19:02:00

① activemq的topic消息一直都會存在資料庫中,為什麼不會刪除

activemq的topic消息一直都會存在資料庫中,為什麼不會刪除
ActiveMQ另問題要軟體能掛掉掛掉怕怕掛掉信息給丟所本節析幾種持久化式:、持久化文件ActiveMQ默認支持種搜索式要發消息設置消息持久化打安裝目錄配置文件:D:\ActiveMQ\apache-activemq\conf\activemq.xml越80行發現默認配置項

② 怎麼徹底刪除kafka的topic,然後重建

1、從zookeerer刪除信息
./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper 10.0.1.10:2181,10.0.1.11:2181,10.0.1.12:2181 --topic test成功後返回信息:deletion succeeded!
2、利用JPS命令查看kafka和zookeeper進程,kill掉QuorumPeerMain和Kafka進程
3、從kafka的log.dirs目錄刪除文件,可以看到多個子目錄名字如test-0,test-1…test-n(就是你topic的partition個數)
進入到kafka的log.dirs目錄,執行
rm –fr test-0……test-n(4) 修改日誌目錄的recovery-point-offset-checkpoint和replication-offset-checkpoint文件(要小心刪除,否則待會kafka不能正常啟動起來)
replication-offset-checkpoint格式如下:
0
4(partition總數)
test 0 0
test 3 0
hehe 0 0
hehe 1 0
修改後如下:
0
2(partition總數)
hehe 0 0
hehe 1 0
把含有test行全部去掉,並且把partition總數修改為減去test的partition的剩餘數目,同理recovery-point-offset-checkpoint也是這樣修改。
完成後就可以正常啟動zookeeper和kafka。

③ Kafka 源碼解析之 Topic 的新建/擴容/刪除

[TOC]
本篇接著講述 Controller 的功能方面的內容,在 Kafka 中,一個 Topic 的新建、擴容或者刪除都是由 Controller 來操作的,本篇文章也是主要聚焦在 Topic 的操作處理上(新建、擴容、刪除),實際上 Topic 的創建在 Kafka 源碼解析之 topic 創建過程(三) 中已經講述過了,本篇與前面不同的是,本篇主要是從 Controller 角度來講述,而且是把新建、擴容、刪除這三個 Topic 級別的操作放在一起做一個總結。

這里把 Topic 新建與擴容放在一起講解,主要是因為無論 Topic 是新建還是擴容,在 Kafka 內部其實都是 Partition 的新建,底層的實現機制是一樣的,Topic 的新建與擴容的整體流程如下圖所示:

Topic 新建與擴容觸發條件的不同如下所示:

下面開始詳細講述這兩種情況。

Topic 擴容
Kafka 提供了 Topic 擴容工具,假設一個 Topic(topic_test)只有一個 partition,這時候我們想把它擴容到兩個 Partition,可以通過下面兩個命令來實現:

這兩種方法的區別是:第二種方法直接指定了要擴容的 Partition 2 的副本需要分配到哪台機器上,這樣的話我們可以精確控制到哪些 Topic 放下哪些機器上。

無論是使用哪種方案,上面兩條命令產生的結果只有一個,將 Topic 各個 Partition 的副本寫入到 ZK 對應的節點上,這樣的話 /brokers/topics/topic_test 節點的內容就會發生變化, 監聽器就會被觸發 ,該監聽器的處理流程如下:

其 doHandleDataChange() 方法的處理流程如下:

下面我們看下 onNewPartitionCreation() 方法,其實現如下:

關於 Partition 的新建,總共分了以下四步:

經過上面幾個階段,一個 Partition 算是真正創建出來,可以正常進行讀寫工作了,當然上面只是講述了 Controller 端做的內容,Partition 副本所在節點對 LeaderAndIsr 請求會做更多的工作,這部分會在後面關於 LeaderAndIsr 請求的處理中只能夠詳細講述。

Topic 新建
Kafka 也提供了 Topic 創建的工具,假設我們要創建一個名叫 topic_test,Partition 數為2的 Topic,創建的命令如下:

跟前面的類似,方法二是可以精確控制新建 Topic 每個 Partition 副本所在位置,Topic 創建的本質上是在 /brokers/topics 下新建一個節點信息,並將 Topic 的分區詳情寫入進去,當 /brokers/topics 有了新增的 Topic 節點後,會觸發 TopicChangeListener 監聽器,其實現如下:

只要 /brokers/topics 下子節點信息有變化(topic 新增或者刪除),TopicChangeListener 都會被觸發,其 doHandleChildChange() 方法的處理流程如下:

接著看下 onNewTopicCreation() 方法實現

上述方法主要做了兩件事:

onNewPartitionCreation() 的實現在前面 Topic 擴容部分已經講述過,這里不再重復,最好參考前面流程圖來梳理 Topic 擴容和新建的整個過程。

Kafka Topic 刪除這部分的邏輯是一個單獨線程去做的,這個線程是在 Controller 啟動時初始化和啟動的。

TopicDeletionManager 初始化
TopicDeletionManager 啟動實現如下所示:

TopicDeletionManager 啟動時只是初始化了一個 DeleteTopicsThread 線程,並啟動該線程。TopicDeletionManager 這個類從名字上去看,它是 Topic 刪除的管理器,它是如何實現 Topic 刪除管理呢,這里先看下該類的幾個重要的成員變數:

前面一小節,簡單介紹了 TopicDeletionManager、DeleteTopicsThread 的啟動以及它們之間的關系,這里我們看下一個 Topic 被設置刪除後,其處理的整理流程,簡單做了一個小圖,如下所示:

這里先簡單講述上面的流程,當一個 Topic 設置為刪除後:

先看下 DeleteTopicsListener 的實現,如下:

其 doHandleChildChange() 的實現邏輯如下:

接下來,看下 Topic 刪除線程 DeleteTopicsThread 的實現,如下所示:

doWork() 方法處理邏輯如下:

先看下 onTopicDeletion() 方法,這是 Topic 最開始刪除時的實現,如下所示:

Topic 的刪除的真正實現方法還是在 startReplicaDeletion() 方法中,Topic 刪除時,會先調用 onPartitionDeletion() 方法刪除所有的 Partition,然後在 Partition 刪除時,執行 startReplicaDeletion() 方法刪除該 Partition 的副本,該方法的實現如下:

該方法的執行邏輯如下:

在將副本狀態從 OfflineReplica 轉移成 ReplicaDeletionStarted 時,會設置一個回調方法 (),該方法會將刪除成功的 Replica 設置為 ReplicaDeletionSuccessful 狀態,刪除失敗的 Replica 設置為 ReplicaDeletionIneligible 狀態(需要根據 StopReplica 請求處理的過程,看下哪些情況下 Replica 會刪除失敗,這個會在後面講解)。

下面看下這個方法 completeDeleteTopic(),當一個 Topic 的所有 Replica 都刪除成功時,即其狀態都在 ReplicaDeletionSuccessful 時,會調用這個方法,如下所示:

當一個 Topic 所有副本都刪除後,會進行如下處理:

至此,一個 Topic 算是真正刪除完成。

④ 怎麼徹底刪除kafka的topic,然後重建

1. 刪除logs下的相關記錄;
2. 到zookeeper下的brokers/topics刪除相關節點。

--------------不好用!!

先邏輯刪除(./bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic dnsTopic --zookeeper 10.0.1.44:2181,10.0.1.45:2181,10.0.1.46:2181),後物理刪除(刪除log文件)。

--------------如果是刪除這個topic的數據的話,可行的方法:
1. 到zookeeper刪除這個topic相關的consumerGroup
2. 刪除這個topic的log文件夾下的所有文件【index以及log文件,不要刪除目錄即可】

⑤ xmtopic是什麼文件夾

是「米吧」的相關文件,不要刪,如卸載了,果斷刪

⑥ 三星手機哪些文件可以刪除

手機內存中的文件有很多,不建議您輕易刪除,如果誤刪系統文件的數據,可能導致手機軟體的無法正常運行。您可以將一些多媒體文件如圖片、音樂、視頻等刪除。

⑦ activemq的topic消息一直都會存在資料庫中,為什麼不會刪除

ActiveMQ另問題要軟體能掛掉掛掉怕怕掛掉信息給丟所本節析幾種持久化式:、持久化文件ActiveMQ默認支持種搜索式要發消息設置消息持久化打安裝目錄配置文件:D:\ActiveMQ\apache-activemq\conf\activemq.xml越80行發現默認配置項: 注意使用kahaDB基於文件支持事務消息存儲器靠高性能擴展消息存儲器 設計初衷使用簡單並盡能快KahaDB索引使用transaction log並且所destination使用index測試表明:用於產環境支持1萬active connection每connection獨立queue該表現已經足矣應付部需求再發送消息候改變第二參數:MsgDeliveryMode.PersistentMessage保存式2種PERSISTENT:保存磁碟consumer消費message刪除NON_PERSISTENT:保存內存消費message清除注意:堆積消息太能導致內存溢打產者端發送消息:wps30F4.tmp啟消費者端同管理界面查看:wps3105.tmp發現消息等待沒持久化ActiveMQ宕機重啟消息丟失我現修改文件持久化重啟ActiveMQ消費者仍能夠收消息

⑧ topic是什麼文件

是映射文件,通常一個Xml映射文件,都會寫一個Dao介面與之對應。

⑨ 怎麼設置kafka topic數據存儲時間

基於0.8.0版本。

##查看topic分布情況kafka-list-topic.sh
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (列出所有topic的分區情況)
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --topic test (查看test的分區情況)

其實kafka-list-topic.sh裡面就一句
exec $(dirname $0)/kafka-run-class.sh kafka.admin.ListTopicCommand $@
實際是通過
kafka-run-class.sh腳本執行的包kafka.admin下面的類
##創建TOPIC kafka-create-topic.sh
bin/kafka-create-topic.sh --replica 2 --partition 8 --topic test --zookeeper 192.168.197.170:2181,192.168.197.171:2181
創建名為test的topic, 8個分區分別存放數據,數據備份總共2份

bin/kafka-create-topic.sh --replica 1 --partition 1 --topic test2 --zookeeper 192.168.197.170:2181,192.168.197.171:2181
結果 topic: test2 partition: 0 leader: 170 replicas: 170 isr: 170
##重新分配分區kafka-reassign-partitions.sh
這個命令可以分區指定到想要的--broker-list上
bin/kafka-reassign-partitions.sh --topics-to-move-json-file topics-to-move.json --broker-list "171" --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --execute
cat topic-to-move.json
{"topics":
[{"topic": "test2"}],
"version":1
}
##為Topic增加 partition數目kafka-add-partitions.sh
bin/kafka-add-partitions.sh --topic test --partition 2 --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (為topic test增加2個分區)

##控制台接收消息
bin/kafka-console-consumer.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --from-beginning --topic test
##控制台發送消息
bin/kafka-console-procer.sh --broker-list 192.168.197.170:9092,192.168.197.171: 9092 --topic test
##手動均衡topic, kafka-preferred-replica-election.sh
bin/kafka-preferred-replica-election.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --path-to-json-file preferred-click.json

cat preferred-click.json
{
"partitions":
[
{"topic": "click", "partition": 0},
{"topic": "click", "partition": 1},
{"topic": "click", "partition": 2},
{"topic": "click", "partition": 3},
{"topic": "click", "partition": 4},
{"topic": "click", "partition": 5},
{"topic": "click", "partition": 6},
{"topic": "click", "partition": 7},
{"topic": "play", "partition": 0},
{"topic": "play", "partition": 1},
{"topic": "play", "partition": 2},
{"topic": "play", "partition": 3},
{"topic": "play", "partition": 4},
{"topic": "play", "partition": 5},
{"topic": "play", "partition": 6},
{"topic": "play", "partition": 7}

]
}

##刪除topic,慎用,只會刪除zookeeper中的元數據,消息文件須手動刪除
bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic test666 --zookeeper 192.168.197.170:2181 ,192.168.197.171:2181