Kafka——關于主題管理

引言

在Kafka的世界中,主題(Topic)是消息的基本組織單位,類似于文件系統中的"文件夾"——所有消息都按照主題分類存儲,生產者向主題寫入消息,消費者從主題讀取消息。主題的管理是Kafka運維的基礎,直接影響集群的性能、可靠性與可維護性。

想象一個場景:某電商平臺的Kafka集群中,"訂單支付"主題因分區數不足導致消息積壓,而"用戶行為日志"主題因副本數過少在Broker宕機時丟失數據。這些問題的根源,往往是對主題管理的忽視。有效的主題管理不僅包括簡單的"增刪改查",還涉及分區規劃、副本配置、內部主題維護等深層次操作。

主題日常管理:從創建到刪除的全流程

主題的日常管理是Kafka運維的基礎操作,包括創建、查詢、修改和刪除,這些操作看似簡單,卻暗藏諸多細節與最佳實踐。

創建主題:基礎命令與參數進化

創建主題是使用Kafka的第一步,Kafka提供kafka-topics.sh腳本完成這一操作。隨著版本迭代,命令參數發生了重要變化,需特別注意。

基本創建命令

Kafka 2.2+版本推薦使用--bootstrap-server參數(替代舊版的--zookeeper),命令格式如下:

bin/kafka-topics.sh \--bootstrap-server broker_host:port \--create \--topic my_topic \--partitions 3 \--replication-factor 2
  • --partitions:指定主題的分區數(如3個分區)。

  • --replication-factor:指定每個分區的副本數(如2個副本,即每個分區在2臺Broker上有備份)。

參數變遷:為什么推薦--bootstrap-server

在2.2版本之前,創建主題需通過--zookeeper指定ZooKeeper地址,但這一方式存在明顯缺陷:

  1. 繞過安全認證:ZooKeeper級別的操作不受Kafka的ACL(訪問控制列表)限制,即使配置了主題創建權限,通過--zookeeper仍可繞過限制,存在安全風險。

  2. 連接信息冗余:需同時維護ZooKeeper和Broker的連接信息,不符合Kafka逐步減少對ZooKeeper依賴的趨勢。

因此,2.2+版本明確將--zookeeper標記為"過期",推薦統一使用--bootstrap-server與Broker交互,既符合安全規范,又簡化了連接管理。

創建主題的最佳實踐

  • 分區數規劃:分區數決定了主題的并行處理能力,需根據預期吞吐量設置(如每分區支撐1000-2000條/秒,則10萬條/秒的主題需50-100個分區)。

  • 副本數配置:副本數影響可靠性,生產環境建議至少3個(容忍2臺Broker宕機),非核心主題可設為2個。

  • 避免過度創建:每個主題會占用Broker的磁盤、內存和網絡資源,大規模集群建議主題總數不超過2000個。

查詢主題:了解集群中的主題狀態

查詢是主題管理的常用操作,通過kafka-topics.sh--list--describe參數可獲取主題的基本信息和詳細配置。

列出所有主題

bin/kafka-topics.sh --bootstrap-server broker_host:port --list

該命令返回當前用戶有權限查看的所有主題(受安全認證限制)。若使用--zookeeper,則返回集群中所有主題(繞過權限控制),不推薦使用。

查看主題詳情

bin/kafka-topics.sh \--bootstrap-server broker_host:port \--describe \--topic my_topic

輸出內容包括:

  • 主題名稱、分區數、副本數。

  • 每個分區的領導者副本(Leader)、ISR集合(同步中的副本)、離線副本(OfflineReplicas)。

例如,某主題的描述可能如下:

Topic: my_topic PartitionCount: 3   ReplicationFactor: 2    Configs:Topic: my_topic Partition: 0    Leader: 1   Replicas: 1,2   Isr: 1,2Topic: my_topic Partition: 1    Leader: 2   Replicas: 2,0   Isr: 2,0Topic: my_topic Partition: 2    Leader: 0   Replicas: 0,1   Isr: 0,1

表示my_topic有3個分區,每個分區2個副本,所有副本均在ISR中(同步正常)。

查詢的實用技巧

  • 省略--topic參數可查看所有主題的詳情,但在大規模集群中會返回大量數據,建議結合grep過濾(如grep "Leader: -1"查找無領導者的分區)。

  • 通過詳情可快速定位異常:若某分區的Isr數量小于ReplicationFactor,說明副本同步滯后;若Leader: -1,說明分區無領導者,無法提供服務。

修改主題:5類常見變更操作

Kafka支持對主題的多種修改,但并非所有屬性都可變更(如分區數只能增加不能減少)。常見的修改操作包括5類,需分別使用不同的命令與參數。

1. 增加分區數

Kafka不支持減少分區(原因見下文"常見問題"),但可通過--alter參數增加分區:

bin/kafka-topics.sh \--bootstrap-server broker_host:port \--alter \--topic my_topic \--partitions 5 ?# 新分區數必須大于當前值

若指定的分區數小于等于當前值,會拋出InvalidPartitionsException異常。

注意:增加分區后,原有消息不會自動遷移到新分區,新消息會按分區策略(如Key哈希)分配到所有分區。

2. 修改主題級別參數

主題級參數(如max.message.bytes控制單條消息最大大小)可通過kafka-configs.sh修改,命令如下:

bin/kafka-configs.sh \--zookeeper zookeeper_host:port \ ?# 目前仍需ZooKeeper參數--entity-type topics \--entity-name my_topic \--alter \--add-config max.message.bytes=1048576 ?# 1MB
  • 主題級參數會覆蓋Broker級默認配置(如broker.config中的max.message.bytes)。

  • 部分參數支持動態生效(無需重啟Broker),如retention.ms(消息留存時間);部分需重啟,如compression.type(壓縮類型)。

3. 變更副本數

副本數可通過kafka-reassign-partitions.sh腳本增加(無法減少),步驟如下:

  1. 創建重分配計劃JSON:定義每個分區的新副本分布(如將副本數從2增至3):

    {"version": 1,"partitions": [{"topic": "my_topic", "partition": 0, "replicas": [0,1,2]},{"topic": "my_topic", "partition": 1, "replicas": [1,2,0]},{"topic": "my_topic", "partition": 2, "replicas": [2,0,1]}]
    }

    保存為increase_replication.json

  2. 執行重分配

    bin/kafka-reassign-partitions.sh \--zookeeper zookeeper_host:port \--reassignment-json-file increase_replication.json \--execute
  3. 驗證結果

    bin/kafka-reassign-partitions.sh \--zookeeper zookeeper_host:port \--reassignment-json-file increase_replication.json \--verify

注意:副本數最多等于集群中Broker的數量(如3個Broker最多支持3個副本)。

4. 修改主題限速

為避免副本同步占用過多帶寬,可限制Leader與Follower的同步速率,步驟如下:

  1. 設置Broker級限速參數

    bin/kafka-configs.sh \--zookeeper zookeeper_host:port \--alter \--add-config 'leader.replication.throttled.rate=104857600,follower.replication.throttled.rate=104857600' \--entity-type brokers \--entity-name 0  # 對Broker 0生效,需為所有涉及的Broker執行

    上述命令限制速率為100MB/s(104857600字節/秒)。

  2. 為主題關聯限速配置

    bin/kafka-configs.sh \--zookeeper zookeeper_host:port \--alter \--add-config 'leader.replication.throttled.replicas=*,follower.replication.throttled.replicas=*' \--entity-type topics \--entity-name my_topic

    *表示對該主題的所有副本限速。

5. 主題分區遷移

當Broker負載不均時,可遷移分區到其他Broker,步驟與增加副本數類似:

  1. 生成遷移計劃(可選,也可手動編寫):

    bin/kafka-reassign-partitions.sh \--zookeeper zookeeper_host:port \--generate \--topics-to-migrate-json-file topics.json \  # 待遷移的主題--broker-list 0,1,2  # 目標Broker列表
  2. 執行遷移:使用生成的計劃JSON,執行--execute命令(同副本數變更)。

注意:遷移過程會消耗額外的網絡和IO資源,建議在業務低峰期執行。

刪除主題:異步操作與注意事項

刪除主題的命令簡單,但操作是異步的,需注意其背后的執行機制。

刪除命令

bin/kafka-topics.sh \--bootstrap-server broker_host:port \--delete \--topic my_topic

執行后,主題會被標記為"待刪除"狀態,Kafka后臺會異步執行刪除:

  1. 控制器(Controller)向所有副本所在的Broker發送StopReplica請求,停止該主題的讀寫。

  2. Broker刪除主題的分區目錄(如/kafka-logs/my_topic-0)。

  3. 刪除ZooKeeper中該主題的元數據(如/brokers/topics/my_topic)。

刪除的常見問題

  • 刪除緩慢:若主題數據量大,刪除可能持續數分鐘到數小時,需耐心等待。

  • 刪除失敗:常見原因包括副本所在Broker宕機、分區正在遷移等,需手動干預(見下文"常見錯誤處理")。

特殊主題管理:Kafka內部主題的運維

Kafka存在兩個特殊的內部主題,分別用于存儲消費者位移和事務元數據,它們的管理與普通主題不同,需特別關注。

消費者位移主題:__consumer_offsets

__consumer_offsets是Kafka自動創建的內部主題,用于存儲消費者組的位移數據(即消費者已消費到的消息位置),其默認配置與運維細節如下。

默認配置

  • 分區數:50個(固定,無法修改)。

  • 副本數:由Broker參數offsets.topic.replication.factor控制(默認1,生產環境建議設為3)。

  • 數據清理:采用壓縮策略(cleanup.policy=compact),只保留每個消費者組的最新位移。

副本數調整

舊版本Kafka(0.11之前)創建__consumer_offsets時,副本數取offsets.topic.replication.factor與當前Broker數的較小值(如100臺Broker但參數設為3,實際副本數仍為3)。但存在缺陷:若集群啟動時只有1臺Broker,即使后續擴容到100臺,副本數仍為1,存在數據丟失風險。

0.11+版本修復了這一問題,嚴格遵循offsets.topic.replication.factor,若當前Broker數不足,會創建失敗并拋異常。若需將副本數從1增至3,步驟如下:

  1. 創建重分配計劃JSONincrease_offsets_replication.json):

    {"version": 1,"partitions": [{"topic": "__consumer_offsets", "partition": 0, "replicas": [0,1,2]},{"topic": "__consumer_offsets", "partition": 1, "replicas": [1,2,0]},...  // 需包含所有50個分區{"topic": "__consumer_offsets", "partition": 49, "replicas": [2,0,1]}]
    }
  2. 執行重分配

    bin/kafka-reassign-partitions.sh \--zookeeper zookeeper_host:port \--reassignment-json-file increase_offsets_replication.json \--execute

查看位移數據

通過kafka-console-consumer.sh可直接查看__consumer_offsets中的位移數據:

bin/kafka-console-consumer.sh \--bootstrap-server broker_host:port \--topic __consumer_offsets \--formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetMetadataFormatter" \--from-beginning

輸出格式為[消費者組, 主題, 分區] -> 位移值,例如:

[my_group, my_topic, 0] -> OffsetAndMetadata{offset=100, metadata=}

事務主題:__transaction_state

__transaction_state是支持事務的內部主題(Kafka 0.11+引入),用于存儲事務元數據(如事務ID、狀態、涉及的分區等)。

特點與管理

  • 分區數:默認50個(固定)。

  • 副本數:由transaction.state.log.replication.factor控制(默認3)。

  • 運維建議:不建議手動修改,由Kafka自動管理。若需調整副本數,方法與__consumer_offsets類似。

查看事務數據

使用專用格式化器查看:

bin/kafka-console-consumer.sh \--bootstrap-server broker_host:port \--topic __transaction_state \--formatter "kafka.coordinator.transaction.TransactionLog\$TransactionLogMessageFormatter"

內部主題的運維原則

  1. 禁止手動創建:由Kafka自動創建,手動創建可能導致元數據不一致。

  2. 副本數配置:生產環境中__consumer_offsets__transaction_state的副本數均建議設為3,確保可靠性。

  3. 磁盤監控:內部主題可能占用大量磁盤空間(尤其是__consumer_offsets),需定期監控并設置合理的清理策略。

常見主題錯誤處理:從刪除失敗到磁盤占用異常

主題管理中可能遇到多種異常情況,掌握其處理方法是保障集群穩定的關鍵。

主題刪除失敗:手動干預步驟

刪除主題后,若磁盤上的分區目錄未被清除,或ZooKeeper中仍存在主題元數據,即為刪除失敗。常見原因包括:

  • 副本所在的Broker宕機,無法接收刪除指令。

  • 主題分區正在遷移,與刪除操作沖突。

處理步驟

  1. 刪除ZooKeeper中的標記

    # 進入ZooKeeper命令行
    bin/zkCli.sh -server zookeeper_host:port
    # 刪除待刪除主題的節點
    rmr /admin/delete_topics/my_topic
  2. 手動刪除磁盤目錄: 在所有副本所在的Broker上,刪除主題的分區目錄:

    rm -rf /kafka-logs/my_topic-*  # 假設數據目錄為/kafka-logs
  3. 刷新控制器緩存(可選): 若刪除后控制器仍緩存該主題,可觸發控制器重選舉:

    # 在ZooKeeper中刪除控制器節點
    rmr /controller

    此操作會導致所有分區重新選舉Leader,可能短暫影響服務,需謹慎執行。

__consumer_offsets占用過多磁盤:日志清理故障排查

__consumer_offsets磁盤占用異常通常是因日志清理線程(kafka-log-cleaner-thread)掛死導致,處理步驟如下:

  1. 檢查清理線程狀態

    # 查找Kafka進程ID
    jps | grep Kafka
    # 查看線程狀態
    jstack <kafka_pid> | grep "kafka-log-cleaner-thread"

    若未找到該線程,說明線程掛死。

  2. 重啟Broker: 清理線程掛死通常需重啟Broker恢復,重啟前建議保留日志(logs/kafkaServer.out),便于排查根因(可能是Kafka Bug)。

  3. 預防措施

    • 定期監控__consumer_offsets的磁盤占用,設置告警閾值(如超過100GB)。

    • 升級Kafka到最新穩定版本,避免已知的清理線程相關Bug。

分區無領導者(Leader: -1):副本異常處理

主題分區的Leader: -1表示無可用領導者,無法提供服務,常見原因包括:

  • 所有副本所在的Broker宕機。

  • 副本數據損壞,無法成為Leader。

處理步驟

  1. 檢查副本所在Broker狀態: 通過jps或監控工具確認副本所在的Broker是否存活,若宕機,重啟即可。

  2. 手動觸發Leader選舉: 若Broker存活但副本無法成為Leader,可執行Preferred領導者選舉:

    # 創建選舉計劃JSON(election.json)
    {"version": 1,"partitions": [{"topic": "my_topic", "partition": 0}]
    }
    # 執行選舉
    bin/kafka-preferred-replica-election.sh \--bootstrap-server broker_host:port \--path-to-json-file election.json
  3. 數據恢復: 若所有副本數據損壞,需刪除分區目錄并重啟Broker,此時分區會從零開始接收消息(可能丟失數據)。

Kafka主題日常管理的"增刪改查”

  • 增:Kafka提供了自帶的kafka-topics腳本,用于幫助用戶創建主題。
  • 刪:命令并不復雜,關鍵是刪除操作是異步的,執行完這條命令不代表主題立即就被刪除了。
  • 改:修改主題分區;修改主題級別參數;變更副本數;修改主題限速;主題分區遷移。
  • 查:查詢所有主題的列表;查詢單個主題的詳細數據。

特殊主題管理與運維

  • 主要是內部主題_consumer_offsets和_transac-tion_state。

常見主題錯誤

  • 主題刪除失敗。
  • consumer_offsets占用太多的磁盤。

主題管理的深層思考:為什么不支持減少分區?

Kafka不允許減少分區數,看似限制,實則是為了避免復雜的一致性問題,主要原因包括:

  1. 消息順序性破壞: 分區是Kafka保證消息順序的最小單位(同一分區內消息有序)。若減少分區,需將被刪除分區的消息遷移到其他分區,破壞原有順序,導致消費者可能收到亂序消息。

  2. 消費者位移混亂: 消費者位移與分區綁定(如[my_group, my_topic, 0] -> 100表示消費到分區0的位移100)。刪除分區后,位移元數據需重新映射,可能導致位移錯亂,引發重復消費或消息丟失。

  3. 實現復雜度高: 減少分區涉及數據遷移、元數據更新、消費者協調等一系列操作,容易引入Bug,且收益有限(分區數過多可通過新建主題并遷移消息替代)。

替代方案:若需減少有效分區,可創建新主題(分區數更少),通過消費者將舊主題消息遷移到新主題,完成后切換生產者到新主題。

總結

主題管理是Kafka運維的基石,貫穿集群的整個生命周期。通過本文的講解,可總結出以下最佳實踐:

  1. 創建階段

    • 優先使用--bootstrap-server參數,遵循安全規范。

    • 合理規劃分區數(根據吞吐量)和副本數(根據可靠性需求)。

  2. 日常維護

    • 定期查詢主題詳情,監控分區Leader、ISR狀態。

    • 修改操作前備份元數據,避免誤操作。

    • 內部主題__consumer_offsets__transaction_state的副本數設為3,確保可靠性。

  3. 故障處理

    • 主題刪除失敗時,按步驟手動清理元數據和磁盤目錄。

    • 監控__consumer_offsets的磁盤占用,及時處理清理線程故障。

  4. 長期規劃

    • 避免過度創建主題和分區,控制集群規模。

    • 分區數不足時通過增加分區擴展,而非減少現有分區。

有效的主題管理不僅能保障Kafka集群的穩定運行,還能為業務增長提供足夠的彈性。掌握這些實踐,將幫助你在面對復雜的生產環境時,從容應對各種主題相關的問題,充分發揮Kafka的高性能與高可靠性優勢。

附錄

操作目的命令示例
創建主題kafka-topics.sh --bootstrap-server host:port --create --topic t1 --partitions 3 --replication-factor 2
列出主題kafka-topics.sh --bootstrap-server host:port --list
查看主題詳情kafka-topics.sh --bootstrap-server host:port --describe --topic t1
增加分區kafka-topics.sh --bootstrap-server host:port --alter --topic t1 --partitions 5
修改主題參數kafka-configs.sh --zookeeper zk:port --entity-type topics --entity-name t1 --alter --add-config max.message.bytes=1048576
刪除主題kafka-topics.sh --bootstrap-server host:port --delete --topic t1
查看位移數據kafka-console-consumer.sh --bootstrap-server host:port --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetMetadataFormatter"
觸發Leader選舉kafka-preferred-replica-election.sh --bootstrap-server host:port --path-to-json-file election.json

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/91265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/91265.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/91265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【VLLM】VLLM使用

一 、安裝 二、啟動入口 VLLM 提供了多種入口方式啟動模型&#xff0c;以適應不同的使用場景&#xff08;如命令行交互、API 服務、自定義集成等&#xff09;。除了最常用的 openai.api_server&#xff08;OpenAI 兼容 API 服務&#xff09;&#xff0c;還有以下主要入口&#…

為Github Copilot創建自定義指令/說明/注意事項

GitHub Copilot 是一個強大的 AI 編程助手&#xff0c;通過合理配置自定義指令&#xff0c;可以讓它更好地理解和遵循項目特定的編碼規范&#xff0c;省的每次提問時輸入重復提示語。 目錄 方法一&#xff1a;項目級別指令文件&#xff08;推薦&#xff09;方法二&#xff1a…

信創厚知聯盟會長兼創始人蒞臨綠算技術

2025年7月29日&#xff0c;信創厚知聯盟會長兼創始人王杲一行考察廣東省綠算技術有限公司&#xff0c;重點調研其在智算中心存儲與AI算力協同領域的創新成果。此次交流標志著雙方在信創產業生態合作上邁出重要一步&#xff0c;為國產高端高性能全閃存存儲與智算基礎設施的融合發…

RAG面試內容整理-Prompt Engineering 在 RAG 中的作用

Prompt Engineering(提示工程)指為生成模型精心設計輸入提示,以引導模型產生所需的輸出。在RAG系統中,prompt設計對充分利用檢索到的知識至關重要。因為生成器(通常是LLM)接收到的不僅有用戶問題,還有檢索的文檔內容,我們需要通過提示明確告訴模型如何使用這些信息。例…

【計算機網絡】5傳輸層

傳輸層是面向通信的最高層&#xff0c;也是用戶功能的最底層。 傳輸層僅存在于主機中&#xff0c;路由器等中間設備只用到下三層&#xff08;無傳輸層&#xff09;。傳輸層對上層應用隱藏了底層網絡的復雜細節&#xff08;比如數據怎么路由、網絡怎么連接等&#xff09;。對應用…

SecureCRT連接密鑰交換失敗

SecureCRT連接密鑰交換失敗問題描述&#xff1a;問題分析&#xff1a;解決方案&#xff1a;問題描述&#xff1a; SecureCRT6.7連接銀河麒麟操作系統v10版本&#xff0c;報錯如下&#xff1a; key exchange failed 密鑰交換失敗 no compatible key exchange method. The serv…

2021-05-10 求出這十個數據的平均值,并輸入高于平均值的所有元素值及下標求出這十個數據的平均值,并輸入高于平均值的所有元素值及下標

緣由C語言向一維數組a[10]中輸入10個數據&#xff1a;12&#xff0c;15&#xff0c;18&#xff0c;21&#xff0c;24&#xff0c;32&#xff0c;34&#xff0c;36&#xff0c;38&#xff0c;4-其他-CSDN問答 double a[10000]{}, j 0; int n 0;while (n < 10000){std::cin …

WordPress與主流CMS拿Webshell實戰

一、wordpress安裝環境首先我們在vulhub中啟動我們wordpress的doaker容器然后去訪問我們的80端口然后選擇簡體中文進行安裝然后就可以登錄到我們的后臺界面了后臺修改模板拿webshell進入后臺&#xff0c;我們修改一下404頁面的代碼&#xff0c;添加我們的一句話木馬然后保存&am…

指針的運算與數組

一、指針的運算1.1加法對指針可以進行加法運算&#xff0c;即p n或者p - n。其結果依舊是一個是一個指針&#xff0c;新的指針是在原來的地址值基礎上加上/減去n *(sizeof(指針指向的數據類型)&#xff09;個字節。 指針也可以進行自增&#xff0c;即*&#xff08;p &#xf…

【PostgreSQL內核學習:WindowAgg 幀優化與節點去重】

PostgreSQL內核學習&#xff1a;WindowAgg 幀優化與節點去重背景關鍵詞解釋本優化主要修改內容描述提交信息提交描述源碼解讀optimize_window_clauses 函數核心邏輯拆解函數時序圖新增結構體類型 SupportRequestOptimizeWindowClause優化后的效果幀優化 sql 用例查詢計劃輸出節…

行業要聞|正式落地!新思科技宣布完成對Ansys的收購

2025年7月17日——新思科技&#xff08;Synopsys, Inc.&#xff0c;納斯達克股票代碼&#xff1a;SNPS&#xff09;宣布完成對Ansys的收購。該交易旨在整合芯片設計、IP核以及仿真與分析領域的領先企業&#xff0c;助力開發者快速創新AI驅動的產品。在擴大至310億美元的總潛在市…

Elasticsearch 基礎速成 5 步跑通索引、文檔、映射與查詢

1 準備工作運行環境 curl -fsSL https://elastic.co/start-local | sh # 一條命令拉起本地單節點集群 # 瀏覽器打開 http://localhost:5601 進入 Kibana → DevTools → Console已有云端或 Serverless 集群可以直接跳到第 2 步。操作界面 以下所有請求均可在 Kibana → DevT…

語音表示學習論文總結

語音表示學習&#xff08;Speech Representation Learning&#xff09;是語音信號處理與機器學習交叉領域的核心技術&#xff0c;其目標是通過數據驅動的方式&#xff0c;從原始語音信號中自動提取具有判別性、魯棒性和泛化能力的特征表示&#xff0c;以替代傳統手工設計的聲學…

國產芯+單北斗防爆終端:W5-D防爆智能手機,助力工業安全通信升級

在石油石化、煤礦開采、電力檢修等高危行業&#xff0c;防爆設備的定位精度、通信可靠性及供應鏈安全性直接決定作業安全與生產效率。傳統防爆手機依賴GPS定位與進口芯片&#xff0c;存在信號盲區、數據泄露風險及斷供隱患。針對此&#xff0c;我們推出W5-D防爆智能終端&#x…

Kafka簡述及學習課程

Kafka是由Apache軟件基金會開發的一個開源流處理平臺&#xff0c;由Scala和Java編寫。Kafka是一種高吞吐量的分布式發布訂閱消息系統&#xff0c;它可以處理消費者在網站中的所有動作流數據。 這種動作&#xff08;網頁瀏覽&#xff0c;搜索和其他用戶的行動&#xff09;是在現…

BLE PHY 幀結構

BLE&#xff08;低功耗藍牙&#xff09;的 PHY&#xff08;物理層&#xff09;幀結構根據傳輸模式&#xff08;廣播、數據&#xff09;和 PHY 類型&#xff08;1M、2M、Coded PHY&#xff09;有所差異&#xff0c;但基本框架一致。以下是 BLE PHY 幀的通用結構及各部分含義&…

海外貨運 app 系統架構分析

一、引言海外貨運業務涉及眾多復雜環節&#xff0c;從貨物攬收、倉儲管理、運輸調度到最后交付&#xff0c;需要一個高效、穩定且功能全面的 APP 系統來協調各方資源&#xff0c;提升物流效率&#xff0c;保障貨物安全準確送達。本文將對海外貨運 APP 系統架構進行詳細剖析&…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-52,(知識點:簡單一階低通濾波器的設計,RC濾波電路,截止頻率)

目錄 1、題目 2、解答 3、相關知識點 一、一階低通濾波器的核心原理 1. 電路結構 2. 關鍵特性參數 二、一階低通濾波器的設計步驟&#xff08;以 RC 電路為例&#xff09; 1. 確定截止頻率\(f_c\) 2. 選擇電阻 R 的阻值 3. 計算電容 C 的容值 4. 驗證與調整 三、典…

防火墻安全實驗

一、實驗拓補圖二、實驗需求1、VLAN 2屬于辦公區;VLAN 3屬于生產區2、辦公區PC在工作日時間(周一至周五&#xff0c;早8到晚6)可以正常訪OA Server&#xff0c;其他時間不允許3、辦公區PC可以在任意時刻訪問Web server4、生產區PC可以在任意時刻訪問OA Server&#xff0c;但是不…

TOC-Transformer-LSTM-ABKDE,計算機一區算法龍卷風優化算法應用到概率區間預測!Matlab實現

TOC算法概述 文獻《Tornado optimizer with Coriolis force: a novel bio-inspired meta-heuristic algorithm》核心解讀&#xff1a;科里奧利力的龍卷風優化算法&#xff08;Tornado optimizer with Coriolis force&#xff0c;TOC&#xff09;對龍卷風循環過程的觀察以及雷暴…