跳转到主要内容

Project Thoth的消息模块

项目描述

GitHub tag (latest by date) PyPI - Module Version PyPI - License PyPI - Downloads Quay - Build

这提供了一个名为 thoth-messaging 的库,用于项目 Thoth。它是一个封装所有消息(此处为Kafka via Faust)原语的基本模块。

使用MyPy进行类型提示

此模块使用pydantic进行类型提示并强制执行消息中的常规模式。如果您使用mypy检查代码,请将以下内容添加到您的mypy配置文件中

[mypy]
plugins = pydantic.mypy

如果您在自己的模块中创建pydantic模型实例,应直接使用相关消息文件中的MessageContents类。使用foo_bar_message.model将仅对BaseMessageContents进行类型提示。

开发和测试

对于开发和测试,在您的机器上运行本地Kafka实例非常有用

我们提供了一个docker-compose文件,可以帮助您快速启动一个基本的Kafka服务器;此文件基于Single Zookeeper/Multiple Kafka

要启动Zookeeper以及Kafka服务器,只需运行$ podman-compose up$ docker-compose up,根据您使用的系统选择适当的选项。

一旦Kafka启动并运行,您就应该准备好开始编写自己的消息生产者和消费者代码。Kafka和Python之间的接口由一个名为Confluent Kafka的库处理。在开发自己的应用程序时,Faust的文档将非常有帮助。如果您想查看Thoth团队的生产者和消费者示例,请查看以下两个存储库:investigatorpackage-update

在测试您的应用程序时,使用控制台生产者和消费者可能很有用,要创建一个,只需运行以下命令将bash外壳附加到您的Kafka服务器之一:$ podman exec -it messaging_kafka1_1 bash,您的容器名称应与这里给出的相同,如果不是,请运行$ podman ps并选择正确的容器。这些容器在适当的位置包含了所有的Kafka二进制文件,因此您可以简单地运行$ kafka-console-consumer$ kafka-console-producer或任何您可能认为有用的其他kafka命令。

示例

kafka-console-consumer --bootstrap-server localhost:9092 --topic test --from-beginning

您可以使用文件通过CLI发送消息作为-

示例

pipenv shell
python cli.py --message-file messages_to_be_sent.json

注意 数据不可持久。一旦删除了pods,与其相关的数据也会被删除。

陷阱

此库中的一些模式被定义为Dict[str, Any]。这通常不能准确地反映实际所需的模式。这些模式可以有意地模糊不清,因为它们在别处定义,并且从必需的库中导入它们会将thoth-messaging版本过于紧密地耦合到其他组件,在最好情况下,在最坏情况下会引入循环依赖。简而言之,thoth-messaging是天真且只能强制执行它已定义的模式。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

thoth-messaging-0.16.2.tar.gz (24.7 kB 查看散列)

上传时间

构建分布

thoth_messaging-0.16.2-py3-none-any.whl (41.2 kB 查看散列)

上传于 Python 3