Kafka ACL(訪問控制列表)介紹

文章目錄

  • Kafka ACL(訪問控制列表)介紹
  • 1. Kafka ACL 的基本概念
    • 1.1 Kafka ACL 的目標
    • 1.2 Kafka ACL 的組成部分
  • 2. Kafka 支持的資源類型
    • 2.1 Topic(主題)
    • 2.2 Consumer Group(消費者組)
    • 2.3 Cluster(集群)
    • 2.4 TransactionalId(事務 ID)
    • 2.5 Delegation Token(委托令牌)
    • 2.6 ACL 管理與資源類型的結合
  • 3. Kafka ACL 操作命令
    • 3.1 列出現有的 ACL 配置
    • 3.2 添加 ACL 權限
    • 3.3 刪除 ACL 權限
    • 3.4 刪除所有 ACL 權限
    • 3.5 查看特定資源的 ACL 配置
    • 3.6 僅允許或拒絕特定操作
    • 3.7 組合 ACL 配置
    • 3.8 使用 Wildcard(通配符)進行配置
  • 5. Kafka ACL 管理最佳實踐
    • 5.1 最小權限原則(Principle of Least Privilege)
    • 5.2 使用通配符來減少 ACL 配置的復雜性
    • 5.3 強化集群安全性:控制管理權限
    • 5.4 定期審計和監控 ACL 配置
    • 5.5 使用拒絕(Deny)策略明確禁止操作
    • 5.6 結合 Kerberos 和 SASL 強化身份認證
    • 5.7 刪除不再需要的 ACL 配置
  • 6. 總結

Kafka ACL(訪問控制列表)介紹

Kafka 的 ACL(Access Control List) 是一種用于控制訪問權限的機制,它允許 Kafka 集群管理員細粒度地管理用戶和應用程序對 Kafka 資源(如主題、消費者組、集群等)的訪問權限。通過設置 ACL,Kafka 集群的安全性得到了有效保障,防止未授權的用戶執行敏感操作。

1. Kafka ACL 的基本概念

1.1 Kafka ACL 的目標

Kafka ACL 的主要目標是通過細粒度的訪問控制來:

  • 限制對敏感資源的訪問:確保只有授權的用戶或客戶端能夠執行某些操作(如生產、消費、創建、刪除主題等)。
  • 保障數據的安全性:通過控制哪些用戶可以訪問哪些數據,防止數據泄露或誤操作。
  • 管理集群資源:通過對集群管理操作的權限控制,避免不當操作對集群穩定性造成影響。

1.2 Kafka ACL 的組成部分

Kafka ACL 主要由以下幾個組成部分:

(1)Principal(主體)

Principal 指執行操作的用戶或客戶端標識,Kafka 支持兩種類型的主體:

  • User:表示特定的用戶,格式為 User:<username>
  • ClientId:表示客戶端標識,格式為 ClientId:<client-id>

例如,User:alice 表示名為 Alice 的用戶,而 ClientId:producer1 表示客戶端標識為 producer1 的生產者。

(2)Operation(操作)

Operation 定義了可以執行的操作類型,常見的操作包括:

  • Read:讀取操作,允許消費者從主題中讀取消息。
  • Write:寫入操作,允許生產者將消息發送到主題。
  • Create:創建資源,允許創建新主題或其他資源。
  • Delete:刪除資源,允許刪除主題等資源。
  • Alter:修改資源,允許修改主題的配置(如分區數等)。
  • Describe:查看資源元數據,允許查看主題、消費者組、集群等的描述信息。
  • ClusterAction:對集群的管理操作,如集群的狀態查看、控制等。

(3)Resource(資源)

Resource 是指對哪些 Kafka 資源進行權限控制,Kafka 支持以下幾種類型的資源:

  • Topic:主題,是 Kafka 中最常見的資源類型。ACL 主要用于控制對主題的生產和消費權限。
  • Group:消費者組,控制用戶或客戶端對消費者組的訪問。
  • Cluster:集群資源,控制集群級別的操作權限,例如創建、刪除主題。
  • TransactionalId:事務 ID,主要用于控制事務操作的權限。

(4)Permission(權限)

Permission 表示是否允許或拒絕特定的操作,Kafka 的 ACL 中有兩種權限:

  • Allow:允許執行指定的操作。
  • Deny:拒絕執行指定的操作。

管理員可以通過 AllowDeny 來控制特定用戶或客戶端對資源的操作權限。

2. Kafka 支持的資源類型

Kafka 支持多種 資源類型,每種資源類型可以應用訪問控制列表(ACL)來管理對該資源的訪問權限。這些資源類型包括 主題(Topic)消費者組(Consumer Group)集群(Cluster) 等。

2.1 Topic(主題)

Topic 是 Kafka 中最常見的資源類型。它用于存儲和組織消息,生產者向主題發送消息,而消費者從主題讀取消息。Kafka 的 ACL 可以精確地控制對主題的讀寫操作。

常見的操作權限

  • Read:允許從主題讀取消息。
  • Write:允許向主題寫入消息。
  • Create:允許創建新的主題。
  • Delete:允許刪除主題。
  • Alter:允許修改主題的配置(如分區數量、保留策略等)。
  • Describe:允許查看主題的元數據(如分區數、日志保留策略等)。

示例

  • 允許用戶 alice 寫入 test-topic

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:alice --operation Write --topic test-topic
    
  • 允許用戶 bob 讀取 test-topic

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:bob --operation Read --topic test-topic
    

2.2 Consumer Group(消費者組)

Consumer Group 是 Kafka 中的一種資源類型,它表示一個消費者實例的集合,負責從主題中消費消息。多個消費者可以組成一個消費者組,每個消費者組內的多個消費者共同消費一個主題的消息。Kafka 的 ACL 允許對消費者組設置訪問控制權限。

常見的操作權限

  • Read:允許消費者組讀取消息。
  • Describe:允許查看消費者組的狀態、偏移量等元數據。

示例

  • 允許用戶 alicegroup1 消費消息:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:alice --operation Read --group group1
    
  • 允許用戶 bob 查看 group1 的消費者組狀態:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:bob --operation Describe --group group1
    

2.3 Cluster(集群)

Cluster 是 Kafka 集群的資源類型,表示 Kafka 系統本身。集群級別的 ACL 允許對整個集群進行管理操作,如創建、刪除、修改主題等操作。

常見的操作權限

  • Create:允許創建主題。
  • Delete:允許刪除主題。
  • Describe:允許查看集群狀態、元數據等。
  • Alter:允許修改集群級別的配置。

示例

  • 允許用戶 admin 創建和刪除主題:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:admin --operation Create --topic *
    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:admin --operation Delete --topic *
    
  • 允許用戶 admin 查看集群信息:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:admin --operation Describe --cluster
    

2.4 TransactionalId(事務 ID)

Kafka 中的 TransactionalId 是一種用于管理 Kafka 事務的資源類型,特別是對于支持 事務 的 Kafka 生產者。事務 ID 用于在 Kafka 中處理生產者的事務,確保消息的精確一次傳遞。

常見的操作權限

  • Read:允許讀取事務消息。
  • Write:允許創建或寫入事務消息。

示例

  • 允許用戶 producer1 使用事務 ID txn-1 寫入消息:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:producer1 --operation Write --transactional-id txn-1
    
  • 允許用戶 consumer1 讀取事務消息:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:consumer1 --operation Read --transactional-id txn-1
    

2.5 Delegation Token(委托令牌)

Delegation Token 是一種用于認證和授權的臨時憑證,適用于分布式系統中的短期權限授予。在 Kafka 中,委托令牌通常用于支持跨集群訪問或通過 OAuth 等第三方認證機制授權。

常見的操作權限

  • Read:允許獲取委托令牌。
  • Write:允許創建或刪除委托令牌。

2.6 ACL 管理與資源類型的結合

Kafka 允許將 ACL 配置應用于上述資源類型中的任意組合,并且 ACL 操作權限可以根據不同的資源類型設置。這種細粒度的控制保證了 Kafka 系統的安全性,防止未授權的操作對集群資源造成影響。

舉例:資源類型與權限結合

  • 允許用戶 alicetopic1 進行寫入操作:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:alice --operation Write --topic topic1
    
  • 允許用戶 bobgroup1 中消費 topic1 的消息:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:bob --operation Read --group group1 --topic topic1
    
  • 允許用戶 admin 對整個集群進行描述:

    bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:admin --operation Describe --cluster
    

3. Kafka ACL 操作命令

Kafka 提供了 kafka-acls.sh 工具用于管理集群中的訪問控制列表(ACL)。通過該命令,你可以配置、查看和刪除訪問控制規則,限制不同用戶或客戶端對 Kafka 資源(如主題、消費者組、集群等)的訪問權限。

3.1 列出現有的 ACL 配置

使用 --list 選項可以列出當前 Kafka 集群的 ACL 配置。這將顯示所有資源和相關的訪問控制策略。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --list

示例
列出 Kafka 集群上的所有 ACL 配置:

bin/kafka-acls.sh --bootstrap-server localhost:9092 --list

此命令會輸出當前集群中所有資源的 ACL 配置。

3.2 添加 ACL 權限

使用 --add 選項可以向 Kafka 資源添加訪問權限。你可以為特定的 用戶客戶端 授予對特定資源(如主題、消費者組)的操作權限。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal <principal> --operation <operation> --resource <resource-type> --topic <topic-name> --group <group-name>
  • --add: 添加 ACL 條目。
  • --allow-principal: 指定允許訪問資源的主體(可以是用戶或客戶端)。
  • --operation: 指定允許的操作,如 Read, Write, Create, Delete 等。
  • --resource: 指定資源類型(如 Topic, Group, Cluster)。
  • --topic: 指定操作的主題名稱。
  • --group: 指定消費者組名稱。

示例 1:允許用戶 alice 寫入 test-topic 主題

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Write --topic test-topic

示例 2:允許消費者組 group1 讀取 test-topic 主題

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal Group:group1 --operation Read --topic test-topic

示例 3:允許用戶 admin 創建主題

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:admin --operation Create --topic *

示例 4:允許用戶 alice 刪除 test-topic 主題

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Delete --topic test-topic

3.3 刪除 ACL 權限

使用 --remove 選項可以刪除已存在的 ACL 條目,撤銷某個用戶或客戶端對某個資源的訪問權限。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --remove --allow-principal <principal> --operation <operation> --resource <resource-type> --topic <topic-name> --group <group-name>

示例 1:刪除用戶 alicetest-topic 的寫入權限

bin/kafka-acls.sh --bootstrap-server localhost:9092 --remove --allow-principal User:alice --operation Write --topic test-topic

示例 2:刪除消費者組 group1test-topic 的讀取權限

bin/kafka-acls.sh --bootstrap-server localhost:9092 --remove --allow-principal Group:group1 --operation Read --topic test-topic

3.4 刪除所有 ACL 權限

要刪除所有與某個資源相關的 ACL 權限,可以通過指定通配符(*)刪除某個類型資源的所有 ACL 配置。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --remove --all --topic <topic-name>

示例
刪除 test-topic 主題上所有的 ACL 配置:

bin/kafka-acls.sh --bootstrap-server localhost:9092 --remove --all --topic test-topic

3.5 查看特定資源的 ACL 配置

使用 --list 選項可以查看指定資源的 ACL 配置。例如,可以查看某個主題或消費者組的 ACL。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --list --topic <topic-name> --group <group-name>

示例 1:查看 test-topic 主題的所有 ACL 配置

bin/kafka-acls.sh --bootstrap-server localhost:9092 --list --topic test-topic

示例 2:查看消費者組 group1 的 ACL 配置

bin/kafka-acls.sh --bootstrap-server localhost:9092 --list --group group1

3.6 僅允許或拒絕特定操作

Kafka 允許對某些操作使用 Deny 權限來顯式拒絕訪問。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --add --deny-principal <principal> --operation <operation> --resource <resource-type> --topic <topic-name> --group <group-name>

示例 1:顯式拒絕用戶 alicetest-topic 主題的寫入權限

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --deny-principal User:alice --operation Write --topic test-topic

示例 2:顯式拒絕消費者組 group1test-topic 主題的讀取權限

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --deny-principal Group:group1 --operation Read --topic test-topic

3.7 組合 ACL 配置

可以在同一命令中為多個資源類型添加或刪除 ACL。例如,可以為多個主題、消費者組同時設置權限。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:<username> --operation <operation> --topic <topic1>,<topic2> --group <group-name>

示例

  • 允許用戶 alicetest-topicanother-topic 寫入消息,并允許 group1 從這兩個主題讀取消息:
    bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Write --topic test-topic,another-topic
    bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal Group:group1 --operation Read --topic test-topic,another-topic
    

3.8 使用 Wildcard(通配符)進行配置

Kafka 支持使用通配符來配置多個主題或資源。例如,使用 * 表示所有主題,* 表示所有消費者組。

命令格式

bin/kafka-acls.sh --bootstrap-server <broker> --add --allow-principal User:<username> --operation <operation> --topic *

示例 1:允許用戶 alice 對所有主題進行寫入

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Write --topic *

示例 2:允許消費者組 group1 讀取所有主題

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal Group:group1 --operation Read --topic *

5. Kafka ACL 管理最佳實踐

在 Kafka 集群中,使用 ACL(訪問控制列表) 來管理權限是確保數據安全和集群控制的關鍵。合理的 ACL 管理能夠幫助組織在多租戶環境中保護 Kafka 資源,同時確保不同的用戶、應用程序或消費者組僅能執行必要的操作。

5.1 最小權限原則(Principle of Least Privilege)

最佳實踐:為每個用戶、客戶端和消費者組配置最小權限,只允許他們執行必要的操作。這有助于減少潛在的安全風險,確保每個實體只能訪問它們需要的資源。

示例 1:為生產者用戶配置寫入權限

場景:允許用戶 producer-user 只能寫入 test-topic 主題,不能讀取或執行其他操作。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:producer-user --operation Write --topic test-topic

解釋

  • --allow-principal User:producer-user: 允許 producer-user
  • --operation Write: 僅授予寫入權限,禁止其他操作。

示例 2:為消費者組配置讀取權限

場景:允許消費者組 consumer-group 讀取 test-topic 主題的數據,但不能進行寫入。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal Group:consumer-group --operation Read --topic test-topic

解釋

  • --allow-principal Group:consumer-group: 允許 consumer-group
  • --operation Read: 僅授予讀取權限,禁止寫入。

5.2 使用通配符來減少 ACL 配置的復雜性

最佳實踐:使用通配符(*)來簡化 ACL 配置,尤其在資源眾多時。通配符允許你一次性授予對多個資源的訪問權限。

示例 3:允許某個用戶讀取所有主題

場景:允許用戶 alice 讀取集群中所有的主題,而不授予寫入權限。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Read --topic *

解釋

  • --topic *: 允許訪問所有主題。
  • --operation Read: 僅授予讀取權限。

示例 4:允許消費者組寫入所有主題

場景:允許消費者組 group1 向集群中所有的主題寫入消息。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal Group:group1 --operation Write --topic *

解釋

  • --topic *: 允許訪問所有主題。
  • --operation Write: 僅授予寫入權限。

5.3 強化集群安全性:控制管理權限

最佳實踐:應限制對集群級別操作的訪問權限,例如集群配置修改、創建和刪除主題等。這些操作通常由管理員執行。

示例 5:限制用戶只能查看集群元數據

場景:允許 read-only 用戶僅查看集群元數據(如主題、分區等),而不能進行任何修改操作。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:read-only --operation Describe --cluster

解釋

  • --operation Describe: 允許查看集群元數據。
  • --cluster: 針對集群資源進行權限配置。

示例 6:僅允許管理員創建和刪除主題

場景:只允許用戶 admin 創建和刪除主題,而不允許普通用戶進行這些操作。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:admin --operation Create --operation Delete --topic *

解釋

  • --operation Create --operation Delete: 授予創建和刪除主題的權限。
  • --topic *: 對所有主題資源進行配置。

5.4 定期審計和監控 ACL 配置

最佳實踐:定期審計 Kafka 集群中的 ACL 配置,確保權限正確且沒有過度權限。在大型集群中,手動管理 ACL 可能導致錯誤,使用自動化工具和監控機制非常重要。

示例 7:列出所有 ACL 配置

場景:審計當前集群中的所有 ACL 配置,檢查每個用戶和消費者組的訪問權限。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --list --topic *

解釋

  • --list: 列出當前所有的 ACL 配置。
  • --topic *: 針對所有主題列出 ACL 配置。

示例 8:定期檢查某個用戶的權限

場景:定期檢查用戶 alicetest-topic 的權限。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --list --principal User:alice --topic test-topic

解釋

  • --list: 列出用戶的所有 ACL 配置。
  • --principal User:alice: 指定要查看的用戶。
  • --topic test-topic: 僅查看該用戶在 test-topic 上的權限。

5.5 使用拒絕(Deny)策略明確禁止操作

最佳實踐:通過明確的拒絕(Deny)策略來防止特定操作,即使在一些 ACL 中未顯式列出。這有助于更好地控制資源訪問,特別是在多租戶環境中。

示例 9:拒絕某個用戶讀取敏感主題

場景:拒絕用戶 bobsensitive-topic 主題的讀取權限。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --deny-principal User:bob --operation Read --topic sensitive-topic

解釋

  • --deny-principal User:bob: 明確拒絕用戶 bobsensitive-topic 主題的讀取權限。
  • --operation Read: 僅拒絕讀取權限。

示例 10:拒絕所有用戶對特定主題進行寫入

場景:拒絕所有用戶對 restricted-topic 進行寫入操作。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --deny-principal User:* --operation Write --topic restricted-topic

解釋

  • --deny-principal User:*: 拒絕所有用戶。
  • --operation Write: 明確拒絕寫入操作。

5.6 結合 Kerberos 和 SASL 強化身份認證

最佳實踐:對于更高的安全需求,應結合 Kerberos 或 SASL 認證機制來進行身份驗證,并與 ACL 配置結合使用。這樣能夠確保僅經過身份驗證的用戶和客戶端能夠執行權限操作。

示例 11:配置 Kafka 與 SASL/Kerberos 集成后使用 ACL

場景:配置 Kafka 使用 SASL/Kerberos 進行身份驗證,確保只有通過身份驗證的用戶才能訪問特定資源。

  1. 配置 Kafka 集群啟用 SASL/Kerberos 認證。
  2. 配置用戶 ACL。
bin/kafka-acls.sh --bootstrap-server localhost:9092 --add --allow-principal User:alice --operation Read --topic test-topic

解釋

  • User:alice:指定一個已通過 Kerberos 或 SASL 認證的用戶。
  • --operation Read:授予 alice 用戶對 test-topic 主題的讀取權限。

5.7 刪除不再需要的 ACL 配置

最佳實踐:定期清理不再使用的 ACL 配置,避免過度權限配置并保持集群的整潔。

示例 12:刪除某個用戶的 ACL 配置

場景:刪除 user1test-topic 主題的所有權限。

bin/kafka-acls.sh --bootstrap-server localhost:9092 --remove --principal User:user1 --topic test-topic

解釋

  • --remove: 刪除指定用戶的 ACL 配置。
  • --principal User:user1: 指定要刪除權限的用戶。
  • --topic test-topic: 刪除用戶在 test-topic 上的所有權限。

6. 總結

Kafka 的 ACL 是集群訪問控制的核心機制,允許管理員根據用戶、客戶端、消費者組等標識,精細化地控制對 Kafka 資源的訪問。通過合適的 ACL 配置,管理員可以確保只有授權的用戶能夠執行操作,從而有效提高 Kafka 集群的安全性。

常見的操作包括:

  • 控制用戶對主題的讀寫權限。
  • 設置消費者組的訪問權限。
  • 管理集群級別的操作權限,如創建、刪除主題等。

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

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

相關文章

在 WSL2 中重啟 Ubuntu 實例

在 WSL2 中重啟 Ubuntu 實例&#xff0c;可以按照以下步驟操作&#xff1a; 方法 1: 使用 wsl 命令 關閉 Ubuntu 實例: 打開 PowerShell 或命令提示符&#xff0c;運行以下命令&#xff1a; wsl --shutdown這會關閉所有 WSL2 實例。 重新啟動 Ubuntu: 再次打開 Ubuntu&#x…

Spring Boot 2 快速教程:WebFlux處理流程(五)

WebFlux請求處理流程 下面是spring mvc的請求處理流程 具體步驟&#xff1a; 第一步&#xff1a;發起請求到前端控制器(DispatcherServlet) 第二步&#xff1a;前端控制器請求HandlerMapping查找 Handler &#xff08;可以根據xml配置、注解進行查找&#xff09; 匹配條件包括…

小程序設計和開發:如何研究同類型小程序的優點和不足。

一、確定研究目標和范圍 明確研究目的 在開始研究同類型小程序之前&#xff0c;首先需要明確研究的目的。是為了改進自己的小程序設計和開發&#xff0c;還是為了了解市場趨勢和用戶需求&#xff1f;不同的研究目的會影響研究的方法和重點。例如&#xff0c;如果研究目的是為了…

使用 Numpy 自定義數據集,使用pytorch框架實現邏輯回歸并保存模型,然后保存模型后再加載模型進行預測,對預測結果計算精確度和召回率及F1分數

1. 導入必要的庫 首先&#xff0c;導入我們需要的庫&#xff1a;Numpy、Pytorch 和相關工具包。 import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import accuracy_score, recall_score, f1_score2. 自定義數據集 …

Unity-編譯構建Android的問題記錄

文章目錄 報錯&#xff1a;AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout報錯信息解讀&#xff1a;原因分析最終處理方法 報錯&#xff1a;AAPT2 aapt2-4.1.2-6503028-osx Daemon #0 Failed to shutdown within timeout 報錯信息解讀&#xff1…

【axios二次封裝】

axios二次封裝 安裝封裝使用 安裝 pnpm add axios封裝 // 進行axios二次封裝&#xff1a;使用請求與響應攔截器 import axios from axios import { ElMessage } from element-plus//創建axios實例 const request axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,…

SQL進階實戰技巧:如何構建用戶行為轉移概率矩陣,深入洞察會話內活動流轉?

目錄 1 場景描述 1.1 用戶行為轉移概率矩陣概念 1.2 用戶行為轉移概率矩陣構建方法 (1) 數據收集

Vue3.0實戰:大數據平臺可視化(附完整項目源碼)

文章目錄 創建vue3.0項目項目初始化項目分辨率響應式設置項目頂部信息條創建頁面主體創建全局引入echarts和axios后臺接口創建express銷售總量圖實現完整項目下載項目任何問題都可在評論區,或者直接私信即可。 創建vue3.0項目 創建項目: vue create vueecharts選擇第三項:…

Java自定義IO密集型和CPU密集型線程池

文章目錄 前言線程池各類場景描述常見場景案例設計思路公共類自定義工廠類-MyThreadFactory自定義拒絕策略-RejectedExecutionHandlerFactory自定義阻塞隊列-TaskQueue&#xff08;實現 核心線程->最大線程數->隊列&#xff09; 場景1&#xff1a;CPU密集型場景思路&…

【VM】VirtualBox安裝ubuntu22.04虛擬機

閱讀本文之前&#xff0c;請先根據 安裝virtualbox 教程安裝virtulbox虛擬機軟件。 1.下載Ubuntu系統鏡像 打開阿里云的鏡像站點&#xff1a;https://developer.aliyun.com/mirror/ 找到如圖所示位置&#xff0c;選擇Ubuntu 22.04.3(destop-amd64)系統 Ubuntu 22.04.3(desto…

Pandas基礎08(分箱操作/時間序列/畫圖)

3.8.1 Pandas分箱操作 數據分箱&#xff08;Binning&#xff09; 是一種數據預處理方法&#xff0c;用于將連續型變量的數值范圍分割成若干個區間或“箱”&#xff08;bins&#xff09;&#xff0c;將數據按照這些區間進行分類&#xff0c;從而轉換為離散型變量。這種方法常用…

C#,shell32 + 調用控制面板項(.Cpl)實現“新建快捷方式對話框”(全網首發)

Made By 于子軒&#xff0c;2025.2.2 不管是使用System.IO命名空間下的File類來創建快捷方式文件&#xff0c;或是使用Windows Script Host對象創建快捷方式&#xff0c;亦或是使用Shell32對象創建快捷方式&#xff0c;都對用戶很不友好&#xff0c;今天小編為大家帶來一種全新…

國產編輯器EverEdit - 輸出窗口

1 輸出窗口 1.1 應用場景 輸出窗口可以顯示用戶執行某些操作的結果&#xff0c;主要包括&#xff1a; 查找類&#xff1a;查找全部&#xff0c;篩選等待操作&#xff0c;可以把查找結果打印到輸出窗口中&#xff1b; 程序類&#xff1a;在執行外部程序時(如&#xff1a;命令窗…

Vue-data數據

目錄 一、Vue中的data數據是什么&#xff1f;二、data支持的數據類型有哪些&#xff1f; 一、Vue中的data數據是什么&#xff1f; Vue中用到的數據定義在data中。 二、data支持的數據類型有哪些&#xff1f; data中可以寫復雜類型的數據&#xff0c;渲染復雜類型數據時只要遵…

02.03 遞歸運算

使用遞歸求出 1 1/3 -1/5 1/7 - 1/9 ... 1/n的值。 1>程序代碼 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #inc…

數據分析系列--⑥RapidMiner構建決策樹(泰坦尼克號案例含數據)

一、資源下載 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 2.劃分訓練集和測試集 3.應用模型 4.結果分析 一、資源下載 點擊下載數據集 二、數據處理 1.導入數據 2.數據預處理 三、構建模型 1.構建決策樹 雖然決策樹已經構建,但對于大多數初學者或…

高階開發基礎——快速入門C++并發編程6——大作業:實現一個超級迷你的線程池

目錄 實現一個無返回的線程池 完全代碼實現 Reference 實現一個無返回的線程池 實現一個簡單的線程池非常簡單&#xff0c;我們首先聊一聊線程池的定義&#xff1a; 線程池&#xff08;Thread Pool&#xff09; 是一種并發編程的設計模式&#xff0c;用于管理和復用多個線程…

pytorch實現主成分分析 (PCA):用于數據降維和特征提取

人工智能例子匯總&#xff1a;AI常見的算法和例子-CSDN博客 使用 PyTorch 實現主成分分析&#xff08;PCA&#xff09;可以通過以下步驟進行&#xff1a; 標準化數據&#xff1a;首先&#xff0c;需要對數據進行標準化處理&#xff0c;確保每個特征的均值為 0&#xff0c;方差…

100 ,【8】 buuctf web [藍帽杯 2021]One Pointer PHP(別看)

進入靶場 沒提示&#xff0c;去看源代碼。 user.php <?php // 定義一個名為 User 的類&#xff0c;該類可用于表示用戶相關信息或執行與用戶有關的操作 class User{// 聲明一個公共屬性 $count&#xff0c;可在類的內部和外部直接訪問// 這個屬性可能用于記錄與用戶相關…

巧妙利用數據結構優化部門查詢

目錄 一、出現的問題 部門樹接口超時 二、問題分析 源代碼分析 三、解決方案 具體實現思路 四、優化的效果 一、出現的問題 部門樹接口超時 無論是在A項目還是在B項目中&#xff0c;都存在類似的頁面&#xff0c;其實就是一個部門列表或者叫組織列表。 從頁面的展示形式…