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

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

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

此過(guò)程用于在 Red Hat 的 OpenShift 容器平臺(tái)上設(shè)置 Debezium 連接器。要在 OpenShift 上進(jìn)行開(kāi)發(fā)或測(cè)試,您可以使用 CodeRady 容器。

一、先決條件

為了使容器與集群上的其他工作負(fù)載分開(kāi),請(qǐng)為 Debezium 創(chuàng)建一個(gè)專(zhuān)用項(xiàng)目。在本文檔的其余部分中,將使用 debezium-example 命名空間:

oc new-project debezium-example

二、部署 Strimzi Operator

對(duì)于 Debezium 部署,我們將使用 Strimzi 項(xiàng)目,該項(xiàng)目管理 OpenShift 集群上的 Kafka 部署。安裝 Strimzi 最簡(jiǎn)單的方法是從 OperatorHub 安裝 Strimzi 操作器。導(dǎo)航到 OpenShift UI 中的“OperatorHub”選項(xiàng)卡,選擇“Strimzi”并單擊“安裝”按鈕。

Debezium日常分享系列之:在 OpenShift 上部署 Debezium,日常分享專(zhuān)欄,Debezium,日常分享系列,OpenShift,部署 Debezium
如果您更喜歡命令行工具,也可以通過(guò)以下方式安裝 Strimzi 操作符:

使用"<<"操作符和"oc create"命令來(lái)創(chuàng)建一個(gè)Kubernetes對(duì)象。通過(guò)將以下內(nèi)容復(fù)制到終端中并按下Enter鍵執(zhí)行命令:

cat << EOF | oc create -f -
<對(duì)象配置內(nèi)容>
EOF

請(qǐng)將"<對(duì)象配置內(nèi)容>"替換為您要?jiǎng)?chuàng)建的Kubernetes對(duì)象的配置。將其粘貼到命令中并按下Enter鍵,Kubernetes將創(chuàng)建該對(duì)象。
$ cat << EOF | oc create -f -
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: my-strimzi-kafka-operator
  namespace: openshift-operators
spec:
  channel: stable
  name: strimzi-kafka-operator
  source: operatorhubio-catalog
  sourceNamespace: olm
EOF

三、為數(shù)據(jù)庫(kù)創(chuàng)建機(jī)密

稍后,在部署 Debezium Kafka 連接器時(shí),我們需要提供連接器的用戶(hù)名和密碼才能連接到數(shù)據(jù)庫(kù)。出于安全原因,最好不要直接提供憑據(jù),而是將它們保存在單獨(dú)的安全位置。 OpenShift 為此提供了 Secret 對(duì)象。除了創(chuàng)建 Secret 對(duì)象本身之外,我們還必須創(chuàng)建一個(gè)角色和角色綁定,以便 Kafka 可以訪問(wèn)憑證。

我們先創(chuàng)建 Secret 對(duì)象:

$ cat << EOF | oc create -f -
apiVersion: v1
kind: Secret
metadata:
  name: debezium-secret
  namespace: debezium-example
type: Opaque
data:
  username: ZGViZXppdW0=
  password: ZGJ6
EOF

用戶(hù)名和密碼包含用于連接 MySQL 數(shù)據(jù)庫(kù)的 Base64 編碼憑據(jù) (debezium/dbz),我們稍后將部署該數(shù)據(jù)庫(kù)。

現(xiàn)在,我們可以創(chuàng)建一個(gè)角色,它引用上一步中創(chuàng)建的秘密:

$ cat << EOF | oc create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: connector-configuration-role
  namespace: debezium-example
rules:
- apiGroups: [""]
  resources: ["secrets"]
  resourceNames: ["debezium-secret"]
  verbs: ["get"]
EOF

我們還必須將此角色綁定到 Kafka Connect 集群服務(wù)帳戶(hù),以便 Kafka Connect 可以訪問(wèn)密鑰:

$ cat << EOF | oc create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: connector-configuration-role-binding
  namespace: debezium-example
subjects:
- kind: ServiceAccount
  name: debezium-connect-cluster-connect
  namespace: debezium-example
roleRef:
  kind: Role
  name: connector-configuration-role
  apiGroup: rbac.authorization.k8s.io
EOF

一旦我們部署 Kafka Connect,服務(wù)帳戶(hù)將由 Strimzi 創(chuàng)建。服務(wù)帳戶(hù)的名稱(chēng)采用 $KafkaConnectName-connect 形式。稍后,我們將創(chuàng)建名為 debezium-connect-cluster 的 Kafka Connect 集群,因此我們?cè)谶@里使用 debezium-connect-cluster-connect 作為 subject.name。

四、部署Apache Kafka

接下來(lái),部署一個(gè)(單節(jié)點(diǎn))Kafka 集群:

$ cat << EOF | oc create -n debezium-example -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: debezium-cluster
spec:
  kafka:
    replicas: 1
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external
        port: 9094
        type: nodeport
        tls: false
    storage:
      type: jbod
      volumes:
      - id: 0
        type: persistent-claim
        size: 100Gi
        deleteClaim: false
    config:
      offsets.topic.replication.factor: 1
      transaction.state.log.replication.factor: 1
      transaction.state.log.min.isr: 1
      default.replication.factor: 1
      min.insync.replicas: 1
  zookeeper:
    replicas: 1
    storage:
      type: persistent-claim
      size: 100Gi
      deleteClaim: false
  entityOperator:
    topicOperator: {}
    userOperator: {}
EOF

等待它準(zhǔn)備好:

oc wait kafka/debezium-cluster --for=condition=Ready --timeout=300s

五、部署數(shù)據(jù)源

下面將使用MySQL作為數(shù)據(jù)源。除了使用 MySQL 運(yùn)行 pod 之外,還需要一個(gè)適當(dāng)?shù)姆?wù)來(lái)指向帶有 DB 本身的 pod。它可以被創(chuàng)建,例如如下:

$ cat << EOF | oc create -f -
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql
  clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: quay.io/debezium/example-mysql:2.3
        name: mysql
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: debezium
        - name: MYSQL_USER
          value: mysqluser
        - name: MYSQL_PASSWORD
          value: mysqlpw
        ports:
        - containerPort: 3306
          name: mysql
EOF

六、部署 Debezium 連接器

要部署 Debezium 連接器,您需要在實(shí)例化實(shí)際連接器本身之前部署具有所需連接器插件的 Kafka Connect 集群。第一步,必須創(chuàng)建帶有插件的 Kafka Connect 容器映像。如果您已經(jīng)構(gòu)建了容器鏡像并在注冊(cè)表中可用,則可以跳過(guò)此步驟。本文檔以MySQL連接器為例。

創(chuàng)建 Kafka Connect 集群

同樣,我們將使用 Strimzi 來(lái)創(chuàng)建 Kafka Connect 集群。 Strimzi 還可以用于為我們構(gòu)建和推送所需的容器鏡像。事實(shí)上,這兩個(gè)任務(wù)可以合并在一起,并且可以直接在 KafkaConnect 對(duì)象規(guī)范中提供構(gòu)建容器映像的說(shuō)明:

$ cat << EOF | oc create -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: debezium-connect-cluster
  annotations:
    strimzi.io/use-connector-resources: "true"
spec:
  version: 3.1.0
  replicas: 1
  bootstrapServers: debezium-cluster-kafka-bootstrap:9092
  config:
    config.providers: secrets
    config.providers.secrets.class: io.strimzi.kafka.KubernetesSecretConfigProvider
    group.id: connect-cluster
    offset.storage.topic: connect-cluster-offsets
    config.storage.topic: connect-cluster-configs
    status.storage.topic: connect-cluster-status
    # -1 means it will use the default replication factor configured in the broker
    config.storage.replication.factor: -1
    offset.storage.replication.factor: -1
    status.storage.replication.factor: -1
  build:
    output:
      type: docker
      image: image-registry.openshift-image-registry.svc:5000/debezium-example/debezium-connect-mysql:latest
    plugins:
      - name: debezium-mysql-connector
        artifacts:
          - type: tgz
            url: https://repo1.maven.org/maven2/io/debezium/debezium-connector-mysql/{debezium-version}/debezium-connector-mysql-{debezium-version}-plugin.tar.gz
EOF

在這里,我們利用了 OpenShift 內(nèi)置注冊(cè)表,它已經(jīng)作為服務(wù)在 OpenShift 集群上運(yùn)行。

為簡(jiǎn)單起見(jiàn),我們跳過(guò)了下載工件的校驗(yàn)和驗(yàn)證。如果您想確保工件已正確下載,請(qǐng)通過(guò) sha512sum 屬性指定其校驗(yàn)和。

如果您在本地或遠(yuǎn)程注冊(cè)表(例如 quay.io 或 DockerHub)中已經(jīng)有合適的容器映像,則可以使用此簡(jiǎn)化版本:

$ cat << EOF | oc create -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: debezium-connect-cluster
  annotations:
    strimzi.io/use-connector-resources: "true"
spec:
  version: 3.1.0
  image: 10.110.154.103/debezium-connect-mysql:latest
  replicas: 1
  bootstrapServers: debezium-cluster-kafka-bootstrap:9092
  config:
    config.providers: secrets
    config.providers.secrets.class: io.strimzi.kafka.KubernetesSecretConfigProvider
    group.id: connect-cluster
    offset.storage.topic: connect-cluster-offsets
    config.storage.topic: connect-cluster-configs
    status.storage.topic: connect-cluster-status
    # -1 means it will use the default replication factor configured in the broker
    config.storage.replication.factor: -1
    offset.storage.replication.factor: -1
    status.storage.replication.factor: -1
EOF

您還可以注意到,我們已將機(jī)密提供程序配置為使用 Strimzi 機(jī)密提供程序 Strimzi 機(jī)密提供程序?qū)樵?Kafka Connect 集群創(chuàng)建服務(wù)帳戶(hù)(我們已將其綁定到適當(dāng)?shù)慕巧?,并允許 Kafka Connect 訪問(wèn)我們的 Secret 對(duì)象。

在創(chuàng)建 Debezium 連接器之前,請(qǐng)檢查所有 pod 是否已在運(yùn)行:

Debezium日常分享系列之:在 OpenShift 上部署 Debezium,日常分享專(zhuān)欄,Debezium,日常分享系列,OpenShift,部署 Debezium

七、創(chuàng)建 Debezium 連接器

要?jiǎng)?chuàng)建 Debezium 連接器,您只需創(chuàng)建具有適當(dāng)配置的 KafkaConnector,在本例中為 MySQL:

$ cat << EOF | oc create -f -
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: debezium-connector-mysql
  labels:
    strimzi.io/cluster: debezium-connect-cluster
spec:
  class: io.debezium.connector.mysql.MySqlConnector
  tasksMax: 1
  config:
    tasks.max: 1
    database.hostname: mysql
    database.port: 3306
    database.user: ${secrets:debezium-example/debezium-secret:username}
    database.password: ${secrets:debezium-example/debezium-secret:password}
    database.server.id: 184054
    topic.prefix: mysql
    database.include.list: inventory
    schema.history.internal.kafka.bootstrap.servers: debezium-cluster-kafka-bootstrap:9092
    schema.history.internal.kafka.topic: schema-changes.inventory
EOF

您可以注意到,我們?cè)谶B接器配置中沒(méi)有使用純文本用戶(hù)名和密碼,而是引用我們之前創(chuàng)建的 Secret 對(duì)象。

八、驗(yàn)證部署

要驗(yàn)證一切正常,您可以例如開(kāi)始觀看 mysql.inventory.customers Kafka 主題:

$ oc run -n debezium-example -it --rm --image=quay.io/debezium/tooling:1.2  --restart=Never watcher -- kcat -b debezium-cluster-kafka-bootstrap:9092 -C -o beginning -t mysql.inventory.customers

連接MySQL數(shù)據(jù)庫(kù):

$ oc run -n debezium-example -it --rm --image=mysql:8.0 --restart=Never --env MYSQL_ROOT_PASSWORD=debezium mysqlterm -- mysql -hmysql -P3306 -uroot -pdebezium

在客戶(hù)表中做一些更改:

sql> update customers set first_name="Sally Marie" where id=1001;

您現(xiàn)在應(yīng)該能夠觀察 Kafka 主題上的更改事件:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-603985.html

{
...
  "payload": {
    "before": {
      "id": 1001,
      "first_name": "Sally",
      "last_name": "Thomas",
      "email": "sally.thomas@acme.com"
    },
    "after": {
      "id": 1001,
      "first_name": "Sally Marie",
      "last_name": "Thomas",
      "email": "sally.thomas@acme.com"
    },
    "source": {
      "version": "{debezium-version}",
      "connector": "mysql",
      "name": "mysql",
      "ts_ms": 1646300467000,
      "snapshot": "false",
      "db": "inventory",
      "sequence": null,
      "table": "customers",
      "server_id": 223344,
      "gtid": null,
      "file": "mysql-bin.000003",
      "pos": 401,
      "row": 0,
      "thread": null,
      "query": null
    },
    "op": "u",
    "ts_ms": 1646300467746,
    "transaction": null
  }
}

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

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

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

    隱藏?cái)?shù)據(jù)庫(kù)的賬號(hào)和密碼 當(dāng) Debezium 連接器部署到 Kafka Connect 實(shí)例時(shí),有時(shí)需要對(duì) Connect API 的其他用戶(hù)隱藏?cái)?shù)據(jù)庫(kù)憑據(jù)。 讓我們回顧一下 MySQL Debezium connector的連接器注冊(cè)請(qǐng)求: 用戶(hù)名和密碼以純字符串形式傳遞給 API。更糟糕的是,任何有權(quán)訪問(wèn) Kafka Connect 集群及其 REST AP

    2024年02月16日
    瀏覽(22)
  • Debezium日常分享系列之:流式傳輸Cassandra第二部分

    在本博客文章系列的前半部分中,解釋了Cassandra 設(shè)計(jì)流數(shù)據(jù)管道的決策過(guò)程。在這篇文章中,我們將把管道分為三個(gè)部分,并更詳細(xì)地討論每個(gè)部分: Cassandra 到 Kafka 與 CDC 代理 Kafka 與 BigQuery 和 KCBQ 使用 BigQuery 視圖進(jìn)行轉(zhuǎn)換 相關(guān)技術(shù)博客: Debezium日常分享系列之:流式傳輸

    2024年02月16日
    瀏覽(21)
  • Debezium系列之:在 Kubernetes 上部署 Debezium

    K8s相關(guān)知識(shí)可以閱讀博主以下幾篇技術(shù)博客: K8s系列之:搭建高可用K8s v1.23.5集群詳細(xì)步驟,3個(gè)master節(jié)點(diǎn),3個(gè)Node節(jié)點(diǎn) K8s系列之:Pod的基本用法 k8s系列之:kubectl子命令詳解一 k8s系列之:kubectl子命令詳解二 更多K8s知識(shí)點(diǎn)詳見(jiàn)博主K8s系列文章 更多Debezium內(nèi)容請(qǐng)閱讀博主Debezi

    2024年02月11日
    瀏覽(28)
  • Debezium系列之:監(jiān)控 Debezium

    Debezium JMX相關(guān)的技術(shù)博客: Debezium系列之:安裝jmx導(dǎo)出器監(jiān)控debezium指標(biāo) Debezium系列之:為Debezium集群JMX頁(yè)面增加監(jiān)控,JMX頁(yè)面出現(xiàn)異常時(shí)發(fā)送飛書(shū)告警,確保任務(wù)能夠獲取debezium集群指標(biāo) Debezium系列之:深入解讀Debezium重要的jmx指標(biāo) Debezium系列之:mysql JMX metrics指標(biāo)詳細(xì)解讀

    2024年02月11日
    瀏覽(28)
  • Debezium系列之:使用 Strimzi 將 Kafka 和 Debezium 遷移到 Kubernetes

    在本文中,將探討在生產(chǎn)中實(shí)現(xiàn)debezium與K8s的結(jié)合: 在 Kubernetes 集群中安裝和管理 Apache Kafka 集群。 在 Kubernetes 集群中部署 Debezium Kafka Connect。 Kubernetes 是一個(gè)開(kāi)源容器編排器,本文使用 minikube 作為 Kubernetes 集群,但相同的步驟在任何其他實(shí)現(xiàn)中都應(yīng)該有效。 啟動(dòng)集群 在終

    2024年02月15日
    瀏覽(22)
  • Debezium系列之:記錄變更事件

    Debezium 數(shù)據(jù)更改事件具有復(fù)雜的結(jié)構(gòu),可提供豐富的信息。 但是,在某些情況下,在下游消費(fèi)者可以處理 Debezium 更改事件消息之前,它需要有關(guān)原始數(shù)據(jù)庫(kù)更改導(dǎo)致的字段級(jí)更改的其他信息。 為了使用有關(guān)數(shù)據(jù)庫(kù)操作如何修改源數(shù)據(jù)庫(kù)中的字段的詳細(xì)信息來(lái)增強(qiáng)事件消息,

    2024年02月09日
    瀏覽(19)
  • Debezium系列之:prometheus采集debezium的jmx數(shù)據(jù),grafana通過(guò)dashboard展示debezium的jmx數(shù)據(jù)

    需要采集debezium的jmx數(shù)據(jù),并把重要的指標(biāo)展示出來(lái) 采取的方案是prometheus采集debezium的jmx數(shù)據(jù),通過(guò)grafana展示出來(lái),可以快速查看某個(gè)連接器重要的指標(biāo)信息

    2024年02月13日
    瀏覽(34)
  • 37、Flink 的CDC 格式:debezium部署以及mysql示例(1)-debezium的部署與示例

    37、Flink 的CDC 格式:debezium部署以及mysql示例(1)-debezium的部署與示例

    一、Flink 專(zhuān)欄 Flink 專(zhuān)欄系統(tǒng)介紹某一知識(shí)點(diǎn),并輔以具體的示例進(jìn)行說(shuō)明。 1、Flink 部署系列 本部分介紹Flink的部署、配置相關(guān)基礎(chǔ)內(nèi)容。 2、Flink基礎(chǔ)系列 本部分介紹Flink 的基礎(chǔ)部分,比如術(shù)語(yǔ)、架構(gòu)、編程模型、編程指南、基本的datastream api用法、四大基石等內(nèi)容。 3、

    2024年01月25日
    瀏覽(22)
  • Debezium系列之:詳細(xì)整理Debezium和Kafka的Transforms類(lèi)型和全部功能

    Kafka Connect 是一個(gè)在 Apache Kafka 與外部系統(tǒng)之間進(jìn)行數(shù)據(jù)傳輸?shù)目蚣?,其主要作用是?shí)現(xiàn)可靠的數(shù)據(jù)集成和流轉(zhuǎn)。 Transforms 是 Kafka Connect 中用于對(duì)數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換的一個(gè)重要特性。 通過(guò)使用 Transforms,用戶(hù)可以對(duì) Kafka Connect 中傳輸?shù)臄?shù)據(jù)進(jìn)行一些處理和轉(zhuǎn)換,例如過(guò)濾、格

    2024年02月10日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包