Mornink!
Мне нужно спроектировать, написать и внедрить широкую систему, состоящую из нескольких серверов Unix, выполняющих разные роли и запускающих различные службы. Система должна быть пуленепробиваемой, надежной и быстрой. Да, знаю. ;) Поскольку я не знаю, как решить эту задачу, я решил спросить вас о вашем мнении, прежде чем покинуть этап проектирования. Вот как должен протекать рабочий процесс:
- пользователи взаимодействуют с веб-сайтом, где они устанавливают требования к обслуживанию
- это требование сохраняется (база данных?), И в центральную систему (кластеризовано) отправляется какое-то сообщение о новом требовании в базе данных / очереди
- центральная система принимает запрос и отправляет сигналы в другие системы (кластеры) для выполнения своих обязанностей (части настройки требуемой услуги)
- по завершении они отправляют в центральную систему или на веб-сайт сообщение о том, что услуга в настоящее время обслуживается
Теперь, каков современный, надежный, чистый и эффективный способ хранения этих запросов в какой-то очереди и их выполнения? Должен ли я посылать какие-либо сигналы, или я должен позволить всем подсистемам проверять очередь / БД любого рода для новых данных? Что это может быть за очередь, база данных? Как бороться с сообщениями? Я думал об открытии одного tcp-соединения и отправке данных по нему вместе с командами, запускающими действия / функции на другом конце, но при более внимательном рассмотрении должен быть другой, лучший способ. Так что я нашел Spring Python, который был раскритикован за то, что он 90-х годов.
Я знаю, что это очень широкий вопрос, но я действительно надеюсь, что вы можете помочь мне обернуть мою голову вокруг этого дизайна и не сделать что-то глупое здесь:)
Заранее спасибо!