跳转到主要内容

evbus app-merge 组件用于 kafka 队列

项目描述

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

该项目包含用于 pop-evbus 的 app-merge 组件。

入门

先决条件

  • Python 3.8+

  • git (如果从源安装,或为项目做出贡献)

安装

如果想要使用 evbus-kafka,你可以通过安装 PyPI 或源代码来使用它。

从 PyPI 安装

pip install evbus-kafka

从源代码安装

# clone repo
git clone git@gitlab.com:vmware/idem/evbus-kafka.git
cd evbus-kafka

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

用法

为你的应用配置 pop-evbus

kafka 配置文件的连接部分接受任何可以在 AIOKafkaProducer 类中使用的参数

credentials.yml

kafka:
  default:
    connection:
      bootstrap_servers:
        - localhost:9092
    topics:
      - topic1
      - topic2

加密凭证文件并导出 ACCT 环境变量

$ pip install acct
$ export ACCT_KEY=$(acct encrypt credentials.yml)
$ export ACCT_FILE="$PWD/credentials.yml.fernet"

现在,当你向 evbus 队列发送消息时,它将被传播到你的配置的 kafka 实现。

async def my_func(hub):
    await hub.evbus.broker.put(body={"message": "event content"}, profile="default")

测试

运行测试需要Kafka服务器。您可以使用自己的Kafka服务器,或者使用Docker。启动本地Kafka服务器

docker run -p 2181:2181 -p 443:9092 -p 9092:9092 \                                      14s   idem-core 
  --env ADVERTISED_LISTENERS=PLAINTEXT://localhost:443,INTERNAL://localhost:9093 \
  --env LISTENERS=PLAINTEXT://0.0.0.0:9092,INTERNAL://0.0.0.0:9093 \
  --env SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,INTERNAL:PLAINTEXT \
  --env INTER_BROKER=INTERNAL \
  krisgeus/docker-kafka

配置与本地RabbitMQ服务器测试的凭据

# credentials.yml
kafka:
  test_development_evbus_kafka:
    connection:
      bootstrap_servers: localhost:9092

加密凭证文件并导出 ACCT 环境变量

$ pip install acct
$ export ACCT_KEY=$(acct encrypt credentials.yml)
$ export ACCT_FILE="$PWD/credentials.yml.fernet"

安装测试需求

$ pip install -r requirements/test.in

使用pytest运行测试:.. code-block:: bash

$ pytest tests

路线图

参考开放问题以获取建议功能列表(以及已知问题)。

致谢

项目详情


下载文件

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

源分布

evbus-kafka-5.0.0.tar.gz (9.8 kB 查看散列)

上传时间

构建分布

evbus_kafka-5.0.0-py3-none-any.whl (9.6 kB 查看散列)

上传时间 Python 3

由以下机构支持