Какие сообщения следует публиковать в топике Кафки c и когда? - PullRequest
0 голосов
/ 12 марта 2020

У меня есть несколько служб, например Catalog Service, Customer Service, Recommendations Service, Order Taking Service и т. Д., Каждая служба имеет свою собственную Keyspace в базе данных Cassandra.

У меня есть два вопроса:

1 - Для изменения службы: сначала я должен опубликовать sh событие (или запись) изменения на Kafka, а затем использовать его из той же службы в другой, чтобы обновить свою базу данных, или я должен сначала обновить свою базу данных, а затем опубликовать sh запись на Kafka?

2 - Как выбрать, какое изменение на publi sh на Kafka, следует Я публикую sh все обновления Kafka, даже те, которые не интересны другим службам, например "attribute X updated to Y for product Z"?

1 Ответ

2 голосов
/ 12 марта 2020

1) Я бы посоветовал вам всегда читать ваши записи. Какая операция более успешна? Копия с Кафки, или прочная Кассандра? Если вы думаете, что Kafka более долговечен, то вам нужно написать его там, а затем использовать такой инструмент, как Kafka Connect, чтобы записать его в Cassandra (если вы действительно нуждаетесь в Cassandra вместо Global KTable, это подлежит обсуждению)

2) Нет простого ответа. Если вы думаете, что данные когда-либо будут использованы способами, которые могут иметь отношение к делу, создайте их. Думайте об этом как журнал аудита всех событий. Если вы хотите построить идемпотентную систему, которая всегда знает последнее состояние любого продукта и все произошедшие изменения, вы можете либо сохранять весь объект каждый раз в виде пар (id, product), где вы сохраняете c обновление всего продукта, или вы можете сохранить каждую дельту того, что изменилось, и восстановить состояние из этого

...