Это, вероятно, несколько вопросов, так что терпите меня. Я все еще выясняю, как правильно использовать Kafka Architecture. Я знаю, что разделы topi c разделены ч / б потребителями.
Что такое потребители? Прямо сейчас я думаю о написании процесса демона python, который действует как потребитель. Когда потребитель получает сообщение от Кафки, есть задача, которую я должен выполнить. Это огромная задача, поэтому я создаю подзадачи, которые выполняются одновременно. Могу ли я иметь несколько потребителей (python сценариев) на одном компьютере?
У меня есть несколько микросервисов, над которыми я работаю, поэтому у каждого микросервиса есть свой потребитель?
Когда нагрузка увеличивается Я должен масштабировать потребителей. Я думал о порождении новой машины, которая выступает в роли другого потребителя. Но я просто чувствую, что делаю что-то не так и чувствую, что должен быть лучший способ.
Можете ли вы сказать мне, как вы масштабировали своих потребителей в зависимости от нагрузки? Нужно ли увеличивать количество разделов в темах, если мне нужно увеличить количество моих потребителей? Как мне сделать это динамически? Могу ли я уменьшить количество разделов, когда создается меньше сообщений? Сколько разделов изначально идеально?
И, пожалуйста, предложите несколько полезных советов, которым нужно следовать.
Это потребительский скрипт, который я использую
while True:
message = client.poll(timeout=10)#client is the KafkaConsumer object
if message is not None:
if message.error():
raise KafkaException(message.error())
else:
logger.info('recieved topic {topic} partition {partition} offset {offset} key {key} - {value}'.format(
topic=message.topic(),
partition=message.partition(),
offset=message.offset(),
key=message.key(),
value=message.value()
))
#run task