Комментарии 4
Интересная статья. Занимать 4 порта ради задачи которую можно написать проще, легче и с использованием только 1 порта. В качестве вводной в массы и как работает сейчас айти нормас. +
Прошу не воспринимать мой комментарий как резкую критику, но у меня в голове не укладывается несоразмерность поставленной задачи и ее решения. Понятно, что это учебный пример / проект, цель которого - показать на практике, как работают какие-то концепции. Но тем не менее, задача стоит, как "API, которое по id и коду валюты напишет в ТГ пользователю с этим ID текущий курс этой валюты в рублях". А следующим предложением идет "нам понадобится Redis, Kafka и Zookeper ". А кончается статья отправкой единственного POST-запроса.
На мой взгляд, тут либо нужно было изначально поставить какую-то другую, более сложную задачу. Либо тут не хватает примера, на котором наглядно будут видны граничные случаи базового элементарного решения в условные 2 строчки. То есть ситуации, в которых оно будет давать сбой. А дальше уже показать, как с помощью более сложной схемы эти проблемы можно победить.
Но здесь уже будет другой момент. Решая одни проблемы - порождаем другие, уже связанные с обслуживанием такой системы. Упрощенное описание из статьи к сожалению скрывает детали и всю сложность вместе с ними. Насколько полезен такой практический опыт - лично мне не очевидно.
Я согласен, что в статье раздул из мухи слона, но я сделал это специально, чтобы читатель как можно меньше думал о самой задаче (т.к. она, как вы правильно подметили, достаточно простая), а больше о том, как мы ее решаем.
То есть акцент был поставлен именно на взаимодействии с брокером и попытке описать несколько возможных ситуаций (когда сервис исключительно производитель, когда и производитель, и потребитель, и когда только потребитель). При этом попытался подобрать разные фрейморвки, а не 5 микросервисов на каком-нибудь одном "фласке".
По поводу "То есть ситуации, в которых оно будет давать сбой. А дальше уже показать, как с помощью более сложной схемы эти проблемы можно победить." - согласен, возможно, мне следовало придумать пример на котором можно было показать, почему именно такое решение будет наилучшим, а не натягивать сову на глобус (микро-сервисы ради микросервисов - анти-паттерн).
И насчет "Насколько полезен такой практический опыт - лично мне не очевидно." - здесь, все же думаю, что для человека, который раннее работал исключительно с монолитной архитектурой, будет что-то новое и после прочтения этой статьи, будет иметь начальное представление о работе нескольких обособленных приложений.
Спасибо за такой большой и конструктивный фидбек!
Python, MSA, Kafka