Kafka connection manager — atomic registry with SSL/SASL support
Project description
kfk_mng
Atomic Kafka connection manager. Регистрирует Kafka producers / consumers по alias, скрывает aiokafka boilerplate.
Установка
pip install kfk_mng
Возможности
- ✅ Регистрация Kafka подключений по alias
- ✅ Producer + Consumer пара (
KafkaComponents) под одним alias - ✅ Поддержка SSL / SASL
- ✅ Lazy start adapters (нет старта пока не вызвал send/getmany)
- ✅ Async API через
aiokafka - ✅ Manual offset commit по умолчанию (надёжность)
Быстрый старт
import kfk_mng
# Регистрация (один раз при старте процесса)
kfk_mng.register(
alias="default",
bootstrap_servers="kafka:9092",
enable_producer=True,
enable_consumer=True,
consumer_topics=["events"],
consumer_group_id="my-workers",
)
# Получение
components = kfk_mng.get("default")
producer = components.producer
consumer = components.consumer
# Использование
metadata = await producer.send(topic="events", value=b"hello")
records = await consumer.getmany(timeout_ms=1000, max_records=10)
await consumer.commit()
# Закрытие
await kfk_mng.close("default")
С SSL и SASL
kfk_mng.register(
alias="prod",
bootstrap_servers="kafka.prod:9093",
security_protocol="SASL_SSL",
ssl_conf={"cafile": "/path/ca.pem"},
sasl_conf={
"mechanism": "PLAIN",
"username": "user",
"password": "secret",
},
enable_producer=True,
)
Multi-instance
kfk_mng.register(alias="default", bootstrap_servers="kafka:9092", enable_producer=True)
kfk_mng.register(alias="dlq", bootstrap_servers="dlq-kafka:9092", enable_producer=True)
await kfk_mng.get("default").producer.send("events", b"x")
await kfk_mng.get("dlq").producer.send("dead-letters", b"y")
Одноразовое подключение (без регистрации)
components = kfk_mng.connect(
bootstrap_servers="kafka:9092",
enable_producer=True,
)
await components.producer.start()
# ... use ...
await components.producer.stop()
API
| Функция | Описание |
|---|---|
register(alias, bootstrap_servers, ...) |
Зарегистрировать producer / consumer под alias |
get(alias) |
Вернуть KafkaComponents по alias |
connect(bootstrap_servers, ...) |
Создать KafkaComponents без регистрации |
close(alias) |
Остановить и удалить из реестра |
close_all() |
Остановить все зарегистрированные |
| Класс | Описание |
|---|---|
KafkaComponents |
dataclass с producer / consumer |
KafkaProducerAdapter |
Обёртка над AIOKafkaProducer (lazy start, send) |
KafkaConsumerAdapter |
Обёртка над AIOKafkaConsumer (lazy start, getmany, commit) |
Сопутствующие библиотеки
kafka_rpc_pubsub— Pydantic-typed Kafka pub/sub поверхkfk_mng
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
kfk_mng-1.0.0.tar.gz
(4.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kfk_mng-1.0.0.tar.gz.
File metadata
- Download URL: kfk_mng-1.0.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0365a7533355fa9ceceefe925884ffc8e35e6f2e7e29652e1b4a51957c3355a4
|
|
| MD5 |
6565b9edfdb7d402c27980f3a66842b5
|
|
| BLAKE2b-256 |
8a804300c14b87cc6dbe6379e7185a0c5e59cb40e97d6d27c06a7f7a69b9200e
|
File details
Details for the file kfk_mng-1.0.0-py3-none-any.whl.
File metadata
- Download URL: kfk_mng-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e32466ef87644cc587c18040430c03268575b3deba09692fd27e75baa3f4ae18
|
|
| MD5 |
34e1fa817e3dd50f5e166edc5bf89a22
|
|
| BLAKE2b-256 |
d22ccb8fa20a92687694fe26ae91bf1343bfc06e082109a335b5ab44e6349b27
|