Как мне реализовать Event Sourcing, используя Kafka?

Когда вы используете malloc, вы не вызываете свой конструктор класса Node, вы просто выделяете память.

Вместо этого используйте new, который будет распределять память и вызывать конструктор. Итак:

struct Node* tmp = (struct Node*) malloc(sizeof(struct Node));

должно быть:

Node* tmp = new Node();

и:

struct Node* root = NULL;
root = (struct Node*) malloc(sizeof(struct Node));

должно быть:

Node* root = new Node();

Помните, если необходимо, delete. Или еще лучше, используйте умные указатели . И прежде всего избегайте использования C с классами . Используйте стандартный стандарт C ++.

0
задан M4V3N 19 January 2019 в 14:32
поделиться

1 ответ

когда я хочу перечислить всех клиентов, мне нужно воспроизвести все события, которые произошли до сих пор

Вы на самом деле этого не делаете или, по крайней мере, не после того, как ваше приложение запустилось и активно собирает / захороняет данные. Я призываю вас найти «Двойственность потоковой таблицы», которая в основном утверждает, что ваша таблица - это текущее состояние мира в вашей системе и моментальный снимок всех потоковых событий на данный момент, который будет ((customers added + customers modified) - customers deleted).

Способ, которым вы реализуете это в Kafka, заключается в использовании сжатой темы Kafka для ваших клиентов, которую можно прочитать в Kafable Kafka Streams и сохранить в памяти или разлить на диск (при поддержке RocksDB). Ключом сообщения может быть некоторый UUID для клиента или некоторая другая идентифицируемая запись, которая не может измениться (например, не имя, адрес электронной почты, телефон и т. Д., Поскольку все это может измениться)

С этим вы можете реализовать [113 ] Интерактивные запросы для сканирования или поиска информации о конкретном клиенте.

0
ответ дан cricket_007 19 January 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: