Набор компонентов для интеграции explicit с kafka
Project description
Explicit-Kafka
Набор компонентов для интеграции explicit с kafka.
Содержит реализацию адаптера обмена сообщениями через Kafka.
Пример использования
Настройка адаптера
# persons/core/apps.py
from django.apps.config import AppConfig as AppConfigBase
class AppConfig(AppConfigBase):
name = __package__
def _setup_adapter(self):
from explicit.kafka.adapters.messaging import Adapter
from explicit.kafka.adapters.messaging import PublishConfig
from explicit.kafka.adapters.messaging import SubscribeConfig
from persons import core
# конфигурация адаптера
adapter_base_config = {'bootstrap.servers': 'kafka:9092'}
publish_config = PublishConfig(adapter_base_config)
subscribe_config = SubscribeConfig(adapter_base_config | {'group.id': f'edu.persons'})
adapter = Adapter(subscribe_config=subscribe_config, publish_config=publish_config)
core.adapter = adapter
def ready(self):
self._setup_adapter()
Отправка сообщений
# persons/core/persons/services/handlers/events.py
def on_person_created(
event: 'PersonCreated',
messaging_adapter: 'AbstractMessagingAdapter'
):
messaging_adapter.publish('edu.persons.person', event.dump())
Подписка на сообщения
# education/entrypoints/eventconsumer.py
def bootstrap():
import json
from education.core import adapter
from education.core import bus
from education.core.persons.domain.events import PersonCreated
TOPIC_EVENTS = {
'edu.persons.person': PersonCreated,
}
for message in adapter.subscribe(*TOPIC_EVENTS):
for message in adapter.subscribe(*TOPIC_EVENTS):
event = TOPIC_EVENTS[message.topic()](
**json.loads(message.value())
)
bus.handle(event)
bootstrap()
Запуск тестов
$ tox
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 explicit_python_kafka-1.2.0.tar.gz.
File metadata
- Download URL: explicit_python_kafka-1.2.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e4f4110c8a4364e50b72127a23464f3088481a3052af0822a4d78623ff3c59e
|
|
| MD5 |
256685c1ef32e735bb5dcf3e23b4d179
|
|
| BLAKE2b-256 |
66d3bc1ad5d7700bc31651bcddf28c01295a0f06f23b7d80383b4612bee63176
|
File details
Details for the file explicit_python_kafka-1.2.0-py3-none-any.whl.
File metadata
- Download URL: explicit_python_kafka-1.2.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e08b99600fe17a1053e1527a1944e86a4942a81b1540522349fbe4aa78a1d00
|
|
| MD5 |
3ab6c57c1a63b036558f37d64706790d
|
|
| BLAKE2b-256 |
75bf01b2af5e2ff13e400aa39f1b58eb408c9f695f206ff448787e5ce23e818a
|