真魔法!图形化管理 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.mzph.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应用。它有助于建立一个灵活、模…