一个有用的卡夫卡工具。
esque的Python项目详细描述
esque-一个可操作的卡夫卡工具。
在卡夫卡的世界里没有什么是容易的,但是esque
(发音为esk)是一种尝试。
你为什么要在乎?
有些东西很难,这没关系,列出你的卡夫卡主题不应该。
在real.digital采用卡夫卡时,我们注意到它给新用户带来了巨大的进入障碍。 我们无法叙述我们编写slack消息的频率,该消息要求脚本检查主题或使用者组的状态。 这在一定程度上(但不仅如此)是由于对kafka的工具和api的定义不完整和不明确。
esque
通过向kafka集群公开一个类似kubectl
的接口,尝试成为人类友好的第一个接触点。
主要功能
- 列出资源(主题、使用者组、代理)
- 获取资源的详细概述(主题、使用者组、代理)
- 创建/删除主题
- 上下文切换(在预定义群集之间轻松切换)
- kafka ping(测试到kafka集群的往返时间)
- 还有更多的计划…
安装和使用
安装
esque
可在pypi.org上获得,并可与pip install esque
一起安装。esque
需要python 3.6+才能运行。
自动完成
自动完成是通过setup.py中的安装后挂钩自动安装的。 如果由于某种原因它不起作用,您仍然可以自己安装:
猛击
echo 'eval "$(_ESQUE_COMPLETE=source esque)"' >> ~/.esque/autocompletion.sh
echo "source ~/.esque/autocompletion.sh" >> ~/.bashrc
zsh
echo 'eval "$(_ESQUE_COMPLETE=source_zsh esque)"' >> ~/.esque/autocompletion.zsh
echo "source ~/.esque/autocompletion.zsh" >> ~/.zshrc
使用量
配置定义
echo 'eval "$(_ESQUE_COMPLETE=source esque)"' >> ~/.esque/autocompletion.sh
echo "source ~/.esque/autocompletion.sh" >> ~/.bashrc
echo 'eval "$(_ESQUE_COMPLETE=source_zsh esque)"' >> ~/.esque/autocompletion.zsh
echo "source ~/.esque/autocompletion.zsh" >> ~/.zshrc
首次启动esque
时,将显示以下消息:
No config provided in ~/.esque
Should a sample file be created in ~/.esque [y/N]:
当用y
esque
应答时,将把sample config复制到~/.esque/esque.cfg
。
然后,您可以修改该文件以适应集群定义。
或者,可以在该路径中的示例配置文件后面提供一个配置文件。
命令概述
$ esque
Usage: esque [OPTIONS] COMMAND [ARGS]...
(Kafka-)esque.
Options:
--help Show this message and exit.
Commands:
apply Apply a configuration
create Create a new instance of a resource.
ctx Switch clusters.
delete Delete a resource.
describe Get detailed informations about a resource.
get Get a quick overview of different resources.
ping Tests the connection to the kafka cluster.
用于“应用”命令的配置文件
apply命令的配置必须是一个yaml文件,并且 与选项-f或--file一起给定。
在当前版本中,只有主题配置可以 更改并指定。
它必须使用模式 对于以下示例:
topics:
- name: topic_one
replication_factor: 3
num_partitions: 50
config:
cleanup.policy: compact
- name: topic_two
replication_factor: 3
num_partitions: 50
config:
cleanup.policy: compact
开发
要设置开发环境,请确保至少安装了python 3.6 Pipenv,然后运行
pipenv install --dev
pipenv shell
export PYTHONPATH=$(pwd)
运行测试
要启动本地测试设置(kafka和zookeeper),可以运行
docker-compose up
当这个docker-compose
堆栈启动时,您可以通过pytest tests/ --integration --local
从cli运行测试
或者,您也可以运行整个测试套件,无需设置开发环境,在Docker compose中通过docker-compose -f docker-compose.yml -f docker-compose.test.yml