真魔法!圖形化管理 Kafka 超輕量的自動化工具

Kafka Magic[1] 是一個用于處理 Apache Kafka 集群的 GUI 工具。它可以查找和顯示消息、在 Topic 之間轉換和移動消息、查看和更新模式、管理 Topic 以及自動化復雜任務。

Kafka Magic 通過方便的用戶界面促進 Topic 管理、QA 和集成測試。

Kafka Magic Community Edition 可免費供個人和企業使用。在這里下載[2]

使用 JavaScript 查詢搜索、查看、過濾消息

  • 瀏覽 Kafka 集群、Topic 和分區。

  • 使用帶有消息字段、標題、鍵的任意組合的 JavaScript 查詢來搜索消息。

  • 按分區、偏移量和時間戳過濾消息。

  • 查看字符串、JSON 或 Avro 序列化消息。

  • 支持 Ssl、PlainText、Sasl Plain Text、Sasl Ssl 安全協議的集群

  • 支持 GSSAPI、PLAIN、SCRAM-SHA-256、SCRAM-SHA-512 的 Sasl mechanism 的集群

192628ed1b8b7fa8ce843a9c3e1904e0.png

發布消息

  • 將 JSON 或 Avro 消息發布到 Topic

  • 使用 Context 發布消息:Key、Headers、Partition Id

  • 在一個步驟中將多條消息發布為一個數組

在 Topic 之間移動消息

  • 在一個 Topic 中查找消息并將它們發送到另一個 Topic

  • 即時轉換消息并更改分配的架構

  • 在多個 Topic 之間有條件地分發消息

管理 Topic 和 Avro 模式

  • 讀取集群和 Topic 元數據

  • 創建、克隆和刪除 Topic

  • 讀取和注冊 Avro 模式

自動化復雜任務

  • 使用 JavaScript(完全符合 ECMAScript)編寫任何復雜的自動化腳本

  • 使用 IntelliSense 和自動完成助手支持的簡單命令編寫腳本

  • 直接從 UI 執行長時間運行的集成測試

  • 保持對測試執行的完全控制

Kafka Magic 有效地處理包含數百萬條消息的非常大的 Topic。

為企業環境而設計

使用場景
  • 發展:利用 Apache Kafka 快速驗證軟件[3]

  • 一體化:驗證 Avro 模式和消息[4]

  • 測試和質量保證:運行復雜的集成測試腳本[5]

  • 支持:發現并解決運營問題[6]

  • 遵守:在 Kafka 中搜索特定內容[7]

任何方式部署:
  • 作為 Windows、Linux 和 Mac 的桌面應用程序。

  • 作為部署在更靠近 Kafka 集群的 Docker 容器。

  • 單獨為每個開發人員,

  • 或整個團隊的單個實例。(每個用戶可能仍需要用戶訪問許可證)

部署

docker 部署

參考:docker 部署[8]

Kafka Magic Docker 容器 (Linux amd64) 托管在 Docker Hub 的存儲庫digitaly/kafka-magic中。

拉取鏡像:

docker?pull?digitsy/kafka-magic

Web 界面在端口 80 上公開。要運行容器并映射到不同的端口(例如 8080):

docker?run?-d?--rm?-p?8080:80?digitsy/kafka-magic

在瀏覽器中導航到http://localhost:8080

docker-compose 部署

對于 docker-compose 示例,請參見 快速開始[9]

Kubernetes 中部署

默認情況下,Kafka Magic 應用程序的 Docker 容器版本配置為將配置存儲在內存中。

要配置文件存儲,您可以通過環境變量更新配置。使用的配置環境變量的名稱 KMAGIC 前綴,需要創建這些環境變量:

KMAGIC_CONFIG_STORE_TYPE:?"file"
KMAGIC_CONFIG_STORE_CONNECTION:?"Data?Source=/tmp/kmagic-data;"
KMAGIC_CONFIG_ENCRYPTION_KEY:?"kmagic-key"

完整的部署 Yaml 如下:

kind:?PersistentVolumeClaim
apiVersion:?v1
metadata:name:?kafka-magic-datanamespace:?kafkafinalizers:-?kubernetes.io/pvc-protection
spec:accessModes:-?ReadWriteOnceresources:requests:storage:?10GistorageClassName:?ceph-rbdvolumeMode:?Filesystem
---
kind:?Service
apiVersion:?v1
metadata:name:?kafka-magicnamespace:?kafkalabels:app:?kafka-magicversion:?v1
spec:ports:-?name:?tcp-80protocol:?TCPport:?80targetPort:?80selector:app:?kafka-magictype:?ClusterIP
---
kind:?Deployment
apiVersion:?apps/v1
metadata:name:?kafka-magic-v1namespace:?kafkalabels:app:?kafka-magicversion:?v1
spec:replicas:?1selector:matchLabels:app:?kafka-magicversion:?v1template:metadata:creationTimestamp:?nulllabels:app:?kafka-magicversion:?v1spec:volumes:-?name:?host-timehostPath:path:?/etc/localtimetype:?''-?name:?volume-ptfuxdpersistentVolumeClaim:claimName:?kafka-magic-datacontainers:-?name:?kmagicimage:?digitsy/kafka-magicports:-?name:?tcp-80containerPort:?80protocol:?TCPenv:-?name:?KMAGIC_CONFIG_STORE_TYPEvalue:?file-?name:?KMAGIC_CONFIG_STORE_CONNECTIONvalue:?Data?Source=/config/KafkaMagicConfig.db;-?name:?KMAGIC_CONFIG_ENCRYPTION_KEYvalue:?kmagic-keyresources:limits:cpu:?'1'memory:?1Girequests:cpu:?500mmemory:?512MivolumeMounts:-?name:?host-timereadOnly:?truemountPath:?/etc/localtime-?name:?volume-ptfuxdmountPath:?/config/subPath:?KafkaMagicConfig.dbimagePullPolicy:?IfNotPresent

上面Yaml中使用了 ceph-rbd storageclass 存儲,請根據實際情況修改。

筆者的集群為扁平化網絡,Service ClusterIP 和 PodIP 集群外是可以訪問的,集群泛域名已經在內網 DNS 中配置了轉發規則。

當然也可以通過 NodePort、Ingress 等方式暴露服務。

筆者部署之后 Kafka Magic 的訪問地址為:

http://kafka-magic.kafka.svc.{集群域名后綴}

使用

不注冊賬號只能添加集群查詢消息。注冊登錄賬號,可以使用的功能更多。

注意:用 qq 郵箱,總是收不到驗證碼。用 gmail 郵箱很順利。

注冊 Kafka 集群

點擊 Register New 注冊 Kafka 集群:

61152753b55f618869ec36a569bc9528.png

發送消息

905ea140bb05e763d1c263845f2c6185.png

查詢消息

1c18619a8397383bf8b5131e5a34eda8.pngMaximum Result 的范圍是[0, 10000]

7801ba87527e2ad6d814b4a6991dab0d.png

執行自動化任務

下面腳本將在My cluster name 集群中創建一個my_new_topic_name 的 topic,并發送消息{ "myField1": "bar", "myField2": 3 },然后查詢消息,最后 delete topic

//?Automation?script?example:Magic.reportProgress('Started:?'?+?new?Date());var?topic?=?Magic.createTopic('My?cluster?name',?'my_new_topic_name');
topic.publishMessage({?"myField1":?"bar",?"myField2":?3?});var?messages?=?topic.search(false,?10,?function?(context)?{
return?context.Message.myField1?==?'bar';
});topic.delete();Magic.reportProgress('Done:?'?+?new?Date());
return?messages;return?'Done!';

將消息從 A topic 復制到 B topic

d3b2d004c64acaa26550ae749fb60d33.png

參考資料

[1]

Kafka Magic: https://www.kafkamagic.com/

[2]

這里下載: https://www.kafkamagic.com/download/?v2

[3]

快速驗證軟件: https://www.kafkamagic.com/usage/development/

[4]

驗證 Avro 模式和消息: https://www.kafkamagic.com/usage/integration/

[5]

復雜的集成測試腳本: https://www.kafkamagic.com/usage/qa/

[6]

發現并解決運營問題: https://www.kafkamagic.com/usage/support/

[7]

搜索特定內容: https://www.kafkamagic.com/usage/compliance/

[8]

docker 部署: https://www.kafkamagic.com/download/#docker-container

[9]

快速開始: https://www.kafkamagic.com/start/#using-docker-containers

- END -

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

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

相關文章

前端工程構建工具——Yeoman

一、Yeoman 簡介 通常在開發新項目時我們都需要配置工程環境,開發目錄,需要下載一些庫、框架文件(如 jQuery、Backbone 等),配置編譯環境(Less、Sass、Coffeescript等),甚至還要配置…

【FME實戰教程】001:FME2020中文安裝圖文教程(附安裝包下載)

文章目錄1. 安裝license2. 安裝FME Desktop3. 安裝中文語言4. FME軟件下載地址1. 安裝license 打開軟件安裝包中的fme-flexnet-win-x64.msi,如下圖所示: 點擊Next。 點擊Next。 單擊install。 點擊finish,完成。 (1)修…

算法導論 第三部分——基本數據結構——第14章:數據結構的擴張

本章通過擴張紅黑樹構造出兩種數據結構:動態順序統計和區間樹。 1、動態順序統計:查找倒數第i小的數據 復雜度為 lg(n) 為什么是擴張紅黑樹而不是搜索二叉樹或者二叉樹? 相對于搜索二叉樹,紅黑樹的平衡性更好,高度在l…

/hgfs下無共享文件夾?/mnt下沒有hgfs文件夾?vmhgfs-fuse:找不到命令?

前言:最近在使用linux的過程中,需要在宿主操作系統與客戶操作系統間建立共享文件夾,遇到了些許問題,在網上參考了許多文章與各種嘗試后,現得以解決,分享如下。1、系統環境:宿主操作系統&#xf…

GraphQL入門有

本文將從GraphQL是什么,為什么要使用GraphQL,使用GraphQL創建簡單例子,以及GraphQL實戰,四個方面對GraphQL進行闡述。說得不對的地方,希望大家指出斧正。 github項目地址:https://github.com/Charming2015/…

對話莊表偉:開源第一課

莊表偉目前就職于華為的開源管理中心。自2014年開源社成立之初,他便友情參與了開源社的籌辦工作。2017年,開源社轉型為完全由個人成員組成的組織,莊表偉就以個人身份加入了開源社。作為開源社理事,當被問到“為什么要參選”時&…

【FME實戰教程】002:FME完美實現CAD數據轉shp案例教程(以三調土地利用現狀數據為例)

FME完美實現CAD數據轉shp案例教程(以三調土地利用數據為例) 文章目錄1. cad數據預覽2. 轉換過程3. shp數據預覽1. cad數據預覽 2. 轉換過程 (1)打開FME Desktop2020中文軟件,點擊【新建】。 (2&#xff09…

Linux學習之01_基礎命令介紹

初學Linux,還在摸索中,在這個過程中希望能記錄下學習到的東西,參考的的書籍為《鳥哥的Linux私房菜》 在這里學到的主要命令有這幾個: data cal bc man shutdown sync 1、基礎命令操作 data----顯示日期與實踐的命令 cal----顯示日…

窮舉算法實例

public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("輸入頭的個數:");int headsc.nextInt();System.out.println("輸入腿的個數:");int footsc.nextInt();for(int i0;i<head;i){//假設兔子的數量為iint jh…

VMware Workstation All Key

官方下載&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 懶人打包&#xff1a;鏈接:https://pan.baidu.com/s/1kWJRfjL 密碼:wzce 注&#xff1a;如果是WinXP或32位系統請用 10.0 版本 VMware 所有版本永久許可證激活密鑰&…

【GlobalMapper精品教程】017:KML generator快速將坐標轉為KML文件

本文介紹KML generator軟件,并快速將坐標轉為KML文件的使用方法,并用globalmapper中打開kml文件加以驗證。本專欄配套完整的案例數據包,請打開data017.rar獲取軟件及數據。 文章目錄 1. KML文件介紹2. kml generator軟件介紹2.1 單點KML制作2.2 Excel數據KML制作2.3 文本文件…

從cpp向qml文件傳中文字符串的方法

Qt 使用Unicode編碼來存儲操作字符串&#xff0c;但很多情況下&#xff0c;我們不得不處理采用其他編碼格式的數據&#xff0c;舉例來說&#xff0c;中文多采用GBK和Big5編碼&#xff0c;而日本則多采用Shift-JIS or ISO2022編碼。將其他編碼格式的字符串轉化成采用Unicode編碼…

Codeforces 746 G. New Roads

題目鏈接&#xff1a;http://codeforces.com/contest/746/problem/G mamaya&#xff0c;不知道YY了一個什么做法就這樣過去了啊 2333 首先我顯然可以隨便構造出一棵樹滿足他所給出的深度要求。 但是他還對于葉子節點的數目有要求。 考慮首先構造一棵樹最大化在滿足給出的深度條…

模型驗證組件 FluentValidation

FluentValidation 是 .NET 下的模型驗證組件&#xff0c;和 ASP.NET MVC 基于Attribute 聲明式驗證的不同處&#xff0c;其利用表達式語法鏈式編程&#xff0c;使得驗證組件與實體分開。正如 FluentValidation 的 介紹&#xff1a; A small validation library for .NET that u…

第二屆中國PWA開發者日

點擊藍字關注我們活動介紹為加速推動漸進式 Web 應用 (PWA) 在中國的發展&#xff0c;微軟與英特爾攜手舉辦“第二屆中國 PWA 開發者日”。本次活動邀請一眾業界大咖圍繞 PWA 展開分享&#xff0c;探討最新技術進展&#xff0c;及 PWA 生態的實踐與落地。期待與您線上相聚。活動…

【GlobalMapper精品教程】018:提取影像數據的范圍生成矢量圖層

文章目錄 1. 加載影像數據2. 生成邊界3. 導出矢量范圍4. 背景影響邊界解決辦法1. 加載影像數據 以DSM為例,加載如下所示: 2. 生成邊界 在影像圖層上右鍵→圖層→【邊界框/覆蓋-創建圖層覆蓋框/多邊形區要素】,如下圖所示: 選擇【否】。 邊界創建完成。 3. 導出矢量范圍 …

MPMoviePlayerController屬性方法簡介

屬性說明property (nonatomic, copy) NSURL *contentURL播放媒體URL&#xff0c;這個URL可以是本地路徑&#xff0c;也可以是網絡路徑property (nonatomic, readonly) UIView *view播放器視圖&#xff0c;如果要顯示視頻必須將此視圖添加到控制器視圖中property (nonatomic, re…

在Leangoo里怎么設置看板周期?

設置看板周期有兩種方式&#xff1a; 1&#xff09;點擊看板上的看板周期時間直接修改 2&#xff09;通過菜單 設置看板周期 瀏覽器訪問官網鏈接&#xff1a;www.leangoo.com 轉載于:https://www.cnblogs.com/shineshine/p/5663104.html

consul部署多節點和consul-template部署

一.consul的介紹 1.1consul是什么&#xff1f; Consul是HashiCorp公司推出的開源工具,用于實現分布式系統的服務發現與配置。 Consul是分布式的、高可用的、可橫向擴展的。它具備以下特性 : service discovery:consul通過DNS或者HTTP接口使服務注冊和服務發現變的很容易,一些外…

基于ABP實現DDD

什么是DDD呢&#xff1f;領域驅動設計[DDD]是一種針對復雜需求的軟件開發方法。將軟件實現與不斷發展的模型聯系起來&#xff0c;專注于核心領域邏輯&#xff0c;而不是基礎設施細節。DDD適用于復雜領域和大規模應用&#xff0c;而不是簡單的CRUD應用。它有助于建立一個靈活、模…