国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Debezium日常分享系列之:使用 Debezium 連接器實(shí)現(xiàn)密鑰外部化

這篇具有很好參考價(jià)值的文章主要介紹了Debezium日常分享系列之:使用 Debezium 連接器實(shí)現(xiàn)密鑰外部化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、需求背景

  • 隱藏?cái)?shù)據(jù)庫的賬號(hào)和密碼
  • 當(dāng) Debezium 連接器部署到 Kafka Connect 實(shí)例時(shí),有時(shí)需要對(duì) Connect API 的其他用戶隱藏?cái)?shù)據(jù)庫憑據(jù)。

二、Debezium connector注冊(cè)請(qǐng)求

讓我們回顧一下 MySQL Debezium connector的連接器注冊(cè)請(qǐng)求:

{
    "name": "inventory-connector",
    "config": {
        "connector.class": "io.debezium.connector.mysql.MySqlConnector",
        "tasks.max": "1",
        "database.hostname": "mysql",
        "database.port": "3306",
        "database.user": "debezium",
        "database.password": "dbz",
        "database.server.id": "184054",
        "database.server.name": "dbserver1",
        "database.whitelist": "inventory",
        "database.history.kafka.bootstrap.servers": "kafka:9092",
        "database.history.kafka.topic": "schema-changes.inventory"
    }
}

用戶名和密碼以純字符串形式傳遞給 API。更糟糕的是,任何有權(quán)訪問 Kafka Connect 集群及其 REST API 的人都可以發(fā)出 GET 請(qǐng)求來獲取連接器的配置,包括數(shù)據(jù)庫憑據(jù):

curl -s http://localhost:8083/connectors/inventory-connector | jq .
{
  "name": "inventory-connector",
  "config": {
    "connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "database.user": "debezium",
    "database.server.id": "184054",
    "tasks.max": "1",
    "database.hostname": "mysql",
    "database.password": "dbz",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "schema-changes.inventory",
    "name": "inventory-connector",
    "database.server.name": "dbserver1",
    "database.whitelist": "inventory",
    "database.port": "3306"
  },
  "tasks": [
    {
      "connector": "inventory-connector",
      "task": 0
    }
  ],
  "type": "source"
}

如果一個(gè) Kafka Connect 集群由多個(gè)連接器/團(tuán)隊(duì)共享,那么出于安全原因,這種行為可能是不可取的。

三、實(shí)現(xiàn)Debezium連接器密鑰外部化

外部化期望至少有一個(gè) org.apache.kafka.common.config.provider.ConfigProvider 接口的實(shí)現(xiàn)類。

Kafka Connect 提供了從文件讀取機(jī)密的參考實(shí)現(xiàn) org.apache.kafka.common.config.provider.FileConfigProvider。可用的配置提供程序在 Kafka Connect 工作線程級(jí)別進(jìn)行配置(例如在 connect-distributed.properties 中),并從連接器配置中引用。

config.providers=file
config.providers.file.class=org.apache.kafka.common.config.provider.FileConfigProvider

連接器注冊(cè)請(qǐng)求將像這樣引用它:

{
    "name": "inventory-connector",
    "config": {
        "connector.class": "io.debezium.connector.mysql.MySqlConnector",
        "tasks.max": "1",
        "database.hostname": "mysql",
        "database.port": "3306",
        "database.user": "${file:/secrets/mysql.properties:user}",
        "database.password": "${file:/secrets/mysql.properties:password}",
        "database.server.id": "184054",
        "database.server.name": "dbserver1",
        "database.whitelist": "inventory",
        "database.history.kafka.bootstrap.servers": "kafka:9092",
        "database.history.kafka.topic": "schema-changes.inventory"
    }

這里,占位符 ${file:/secrets/mysql.properties:user} 表示應(yīng)該使用文件配置提供程序,讀取屬性文件 /secrets/mysql.properties 并從中提取用戶屬性。

文件配置提供程序可能是最簡(jiǎn)單的實(shí)現(xiàn),并且可以預(yù)期將會(huì)出現(xiàn)與密鑰存儲(chǔ)庫或身份管理系統(tǒng)集成的其他提供程序。值得注意的是,文件配置提供程序在 Kubernetes/OpenShift 部署中是令人滿意的,因?yàn)闄C(jī)密對(duì)象可以作為文件注入到集群 pod 中,從而被集群 pod 消耗。

我們創(chuàng)建了 Debezium 教程示例的一個(gè)版本,它演示了外部化機(jī)密的部署。請(qǐng)注意 Docker Compose 連接服務(wù)中的兩個(gè)環(huán)境變量:

- CONNECT_CONFIG_PROVIDERS=file
- CONNECT_CONFIG_PROVIDERS_FILE_CLASS=org.apache.kafka.common.config.provider.FileConfigProvider

這些環(huán)境變量作為 debezium/connect 映像的功能直接映射到 Kafka Connect 工作線程屬性中。

當(dāng)您發(fā)出 REST 調(diào)用來獲取連接器配置時(shí),您將看到敏感信息已被外部化并且對(duì)未經(jīng)授權(quán)的用戶屏蔽:文章來源地址http://www.zghlxwxcb.cn/news/detail-563659.html

curl -s http://localhost:8083/connectors/inventory-connector | jq .
{
  "name": "inventory-connector",
  "config": {
    "connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "database.user": "${file:/secrets/mysql.properties:user}",
    "database.server.id": "184054",
    "tasks.max": "1",
    "database.hostname": "mysql",
    "database.password": "${file:/secrets/mysql.properties:password}",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "schema-changes.inventory",
    "name": "inventory-connector",
    "database.server.name": "dbserver1",
    "database.whitelist": "inventory",
    "database.port": "3306"
  },
  "tasks": [
    {
      "connector": "inventory-connector",
      "task": 0
    }
  ],
  "type": "source"
}

到了這里,關(guān)于Debezium日常分享系列之:使用 Debezium 連接器實(shí)現(xiàn)密鑰外部化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Flink系列之:JDBC SQL 連接器

    Scan Source: Bounded Lookup Source: Sync Mode Sink: Batch Sink: Streaming Append Upsert Mode JDBC 連接器允許使用 JDBC 驅(qū)動(dòng)向任意類型的關(guān)系型數(shù)據(jù)庫讀取或者寫入數(shù)據(jù)。本文檔描述了針對(duì)關(guān)系型數(shù)據(jù)庫如何通過建立 JDBC 連接器來執(zhí)行 SQL 查詢。 如果在 DDL 中定義了主鍵,JDBC sink 將以 upsert 模式與外

    2024年02月02日
    瀏覽(24)
  • Semantic Kernel 入門系列:?Connector連接器

    Semantic Kernel 入門系列:?Connector連接器

    當(dāng)我們使用Native Function的時(shí)候,除了處理一些基本的邏輯操作之外,更多的還是需要進(jìn)行外部數(shù)據(jù)源和服務(wù)的對(duì)接,要么是獲取相關(guān)的數(shù)據(jù),要么是保存輸出結(jié)果。這一過程在Semantic Kernel中可以被歸類為Connector。 Connector更像是一種設(shè)計(jì)模式,并不像Function和Memory 一樣有強(qiáng)制和

    2023年04月15日
    瀏覽(25)
  • Flink系列之:Upsert Kafka SQL 連接器

    Scan Source: Unbounded 、 Sink: Streaming Upsert Mode Upsert Kafka 連接器支持以 upsert 方式從 Kafka topic 中讀取數(shù)據(jù)并將數(shù)據(jù)寫入 Kafka topic。 作為 source,upsert-kafka 連接器生產(chǎn) changelog 流,其中每條數(shù)據(jù)記錄代表一個(gè)更新或刪除事件。更準(zhǔn)確地說,數(shù)據(jù)記錄中的 value 被解釋為同一 key 的最后一

    2024年01月16日
    瀏覽(26)
  • Kafka系列之:連接器客戶端配置覆蓋策略

    KAFKA引入了每個(gè)源連接器和接收器連接器從工作線程屬性繼承其客戶端配置的功能。在工作線程屬性中,任何具有“生產(chǎn)者”或“消費(fèi)者”前綴的配置。分別應(yīng)用于所有源連接器和接收器連接器。雖然最初的提案允許覆蓋源連接器和接收器連接器,但它在允許連接器的不同配

    2024年02月11日
    瀏覽(27)
  • Flink系列之:Apache Kafka SQL 連接器

    Scan Source: Unbounded Sink: Streaming Append Mode Kafka 連接器提供從 Kafka topic 中消費(fèi)和寫入數(shù)據(jù)的能力。 以下示例展示了如何創(chuàng)建 Kafka 表: 以下的連接器元數(shù)據(jù)可以在表定義中通過元數(shù)據(jù)列的形式獲取。 R/W 列定義了一個(gè)元數(shù)據(jù)是可讀的(R)還是可寫的(W)。 只讀列必須聲明為 VI

    2024年02月01日
    瀏覽(28)
  • Flink系列之:Flink CDC深入了解MySQL CDC連接器

    Flink系列之:Flink CDC深入了解MySQL CDC連接器

    增量快照讀取是一種讀取表快照的新機(jī)制。與舊的快照機(jī)制相比,增量快照具有許多優(yōu)點(diǎn),包括: (1)在快照讀取期間,Source 支持并發(fā)讀取 (2)在快照讀取期間,Source 支持進(jìn)行 chunk 粒度的 checkpoint (3)在快照讀取之前,Source 不需要數(shù)據(jù)庫鎖權(quán)限。 如果希望 source 并行運(yùn)

    2024年02月02日
    瀏覽(30)
  • Kafka系列之:對(duì)源連接器的的Exactly-Once支持

    Kafka系列之:對(duì)源連接器的的Exactly-Once支持

    冪等生產(chǎn)者: 寫入 Kafka 的應(yīng)用程序重復(fù)記錄的一個(gè)常見來源是自動(dòng)生產(chǎn)者重試,其中生產(chǎn)者會(huì)在某些情況下將批次重新發(fā)送到 Kafka,即使該批次已由代理提交。KIP-98 允許用戶將其生產(chǎn)者配置為冪等地執(zhí)行這些重試,這樣下游應(yīng)用程序只能看到自動(dòng)重新發(fā)送的生產(chǎn)者批次中任

    2024年02月11日
    瀏覽(19)
  • Debezium日常分享系列之:Debezium and TimescaleDB

    TimescaleDB 是一個(gè)開源數(shù)據(jù)庫,旨在使 SQL 對(duì)于時(shí)間序列數(shù)據(jù)具有可擴(kuò)展性。它是作為 PostgreSQL 數(shù)據(jù)庫的擴(kuò)展實(shí)現(xiàn)的。這一事實(shí)促使我們重新使用標(biāo)準(zhǔn) Debezium PostgreSQL 連接器,并將 TimescaleDB 支持實(shí)現(xiàn)為單個(gè)消息轉(zhuǎn)換 (SMT)。 TimescaleDB 提供了三個(gè)基本構(gòu)建塊/概念: Hypertables Contin

    2024年01月17日
    瀏覽(20)
  • Debezium日常分享系列之:在 OpenShift 上部署 Debezium

    Debezium日常分享系列之:在 OpenShift 上部署 Debezium

    此過程用于在 Red Hat 的 OpenShift 容器平臺(tái)上設(shè)置 Debezium 連接器。要在 OpenShift 上進(jìn)行開發(fā)或測(cè)試,您可以使用 CodeRady 容器。 為了使容器與集群上的其他工作負(fù)載分開,請(qǐng)為 Debezium 創(chuàng)建一個(gè)專用項(xiàng)目。在本文檔的其余部分中,將使用 debezium-example 命名空間: 對(duì)于 Debezium 部署,

    2024年02月16日
    瀏覽(25)
  • 滿足新能源三電系統(tǒng)氣密和電性能測(cè)試的E10系列多功能電連接器

    滿足新能源三電系統(tǒng)氣密和電性能測(cè)試的E10系列多功能電連接器

    在新能源汽車的測(cè)試領(lǐng)域中,三電系統(tǒng)的測(cè)試是質(zhì)量管控過程中非常重要的組成部分。無論是防水防塵的氣密性測(cè)試,還是EOL/DCR等電性能相關(guān)的測(cè)試,都是確保新能源汽車正常工作中不可缺少的一部分。 在以往的測(cè)試中,每種測(cè)試都是獨(dú)立的。每個(gè)測(cè)試工序中,都需要獨(dú)立

    2024年02月07日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包