AshBlade
@AshBlade
Просто хочу быть счастливым

Какие можно почитать ресурсы для создания распределенных, реплицируемых, высокопроизводительных приложений?

Хочу создать свою "убийцу" кафки. (или другого популярного приложения, используемого на хайлоаде) - изучить принципы работы на конкретном примере.
Но бизнес-логика это не единственное: нужно учесть многонодность, распределенность и другие аспекты.
Есть какие-нибудь книги, туториалы, ресурсы которые покажут, расскажут - дадут наглядное представление о том как такие приложения писать. Примеры приложений: брокеры сообщений (RabbitMQ), Kafka, распределенные БД (MongoDB, Redis).

P.S. Можно по кусочкам собирать Raft, QoS и другие детали, но хотелось бы иметь структурированную информацию
  • Вопрос задан
  • 332 просмотра
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Тема хорошая. Только вот градус амбиций я-бы сбросил. Попробуй просто написать сокетное приложение
которое передает события из точки А в точку Б. И придумай механизм персистенции. И балансировщик. И кластер. Да. правильно написал про Raft. Не только Raft. Еще есть Paxos используется в Cassandra. И централизованный ZooKeeper.

Где почитать - я даже не знаю. Спектр технологий такой широкий. Тут и сети. И многозадачность. И хранение информации.

Кстати Кафки в дефолтной комплектации почти не бывает. Каждый кастомер конфигурирует для себя регуляторы скорость-надежность. Влево-вправо. Понимаешь? Поэтому до того как "убивать" Кафку надо просто понять что любое ее нагрузочное тестирование просто ставит другие вопросы. А что собстенно вы ходите. Доставить опционально но быстро. Или с гарантией что месседж сохранился. Или с гарантией что сохранился в основной кластер и в реплику. Каждый кастомер еще для себя придумывает partitioning strategy что является очень важным аспектом скорости Kafka. Тоесть еще до бенчмарка нужно все эти вопросы проговорить. Иначе выйдет сравнительное тестирование "бульдога" и "носорога". И любая система которая будет быстрее Кафки на самом деле будет просто системой заточенной на более узкие условия. Это как узкий UDP может быть быстрее чем TCP но ... как говорил Василий Иванович есть один "нюанс".
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Cheypnow
Ответ написан
Комментировать
@ashumkin
системный разработчик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы