Система распределенной обработки задач на нескольких компьютерах
У нас есть сервис. Сервис реализован на базе .NET 4.5. Состоит из.:
Web-часть (пользовательская и админская панели, а также API).
Распределенная система для обработки запросов API. Реализована на базе RabbitMQ, v3.6. Общая архитектура отображена здесь https://drive.google.com/file/d/0B1JwhoEWV0zDVUQ1OE1UeG5TSlE/view?usp=sharing . Все части работают под управлением системы Windows.
Работа распределенной системы
Сервер управления обработкой задач раздает задачи обработчикам. В качестве параметров передается тип задачи, а также Runtime параметры (специфические для конкретной задачи). Обработчик, который взял задачу,- выполняет задачу и возвращает текстовый ответ(результат работы).
Проблема
Проблема в том, что при одновременной передаче 3х и более задач(от сервера к обработчикам) происходит задержка(зависание). Т.е. при тестировании на 2х обработчиках и одновременно поставленных 2х задачах проблемы нет, когда у нас 4 обработчика(клиента) и мы ставим одновременно 4 задачи сервер как будто не справляется. Если сделать задержку в 0.5-1с и отправлять задания по очереди - такой проблемы нет. Возможно RabbitMQ не лучшая технология для такой задачи либо ошибка где то на нашей стороне.
Варианты решения которые видим
найти траблы существующего
взять другое решение
Просьба в заяввках оставлять свои предложения и желательно сразу уточнять ориентировочную стоимость и сроки.
-
8562 275 0 Добрый день! Готов посмотреть, в чем там проблема. Скорее всего, в коде, который вычитывает данные из очереди. Цена указана за один полный день работы. Если там простой фикс, то хватит 1 дня. Если надо будет реализовать многопоточную логику чтения из очереди - то это дня два. Ну и вы должны понимать, что использование очередей - это асинхронный механизм, и нельзя требовать от него скорости отклика, как у синхронных запросов.
О себе: более 10 лет опыта разработки под .NET (в основном, энтерпрайз сектор, сложные системы). Конкретно с RabbitMQ не работал, но работал с очередями в Azure/Amazon
-
1. Без досмотра кода оценить стоимость/сроки сложно...
2. Конкретно с RabbitMQ я не знаком, но судя по тестам (пример от 2012 года) даже с сохранением на диск скорость обработки 4+ тыс. сообщ./сек., из чего можно сделать вывод, что проблема где-то в вашем коде.
-
Пф, так вы раздаете задачи или сообщения? И что увас за система а-ля "франкенштейн" со сторонними решениями, которыми вы не в состоянии управлять? Вы или найдите разработчика под RabbitMQ, если у вас доступ к их технологиям (где четко прописаны их возможности), или разрабатывайти свою систему управления, если есть свой подходящий сервер. Очереди и ситемы массового обслуживания в универах преподают на первых курсах. А вообще сделайте втык менеджерам за атаз типа "а эта технология нам точно нужна?".
-
P. S. С такими проблемами ищите АСУшника на пару с тестировщиком. Первый оформит по-человечески вашу систему от А до Я, а второй попробует определить дыры в существующей системе, чтобы не пришлось все переписывать с нуля. Я - не тестировщик, но помочь разобраться в общих решениях могу, чисто из интереса к ситуации.
-
Актуальные фриланс-проекты в категории C#
Инсталлер для WPF проекта
500 UAH
Создал приложение на WPF (Visual Studio 2022, .NET 7). Нужно иметь возможность: 1. превратить файлы приложения в пакет инсталляции (с возможностью задать иконку для инсталлера) 2. при установке инсталлер на компьютере пользователя запускает установку .net core 7, если он там не… C# |
Зробити правки на сайті. Оптимізувати запроси до БД. С#
2000 UAH
Доброго дня! Якщо коротко необхідно зробити рефакторинг. Найголовніше продивитись запроси до БД, проаналізувати чому довго виконуються та виправити. C# ∙ 3 ставки |
Бот помощи записи в визовый центр VFSВсем привет! Нашей команде требуется создать бот, который сможет помогать людям записываться на подачу документов на визу в визовых центрах VFS. Основные направления, интересующие нас - визовые центры в Индии. Поэтому необходимо будет подключаться через прокси, а также принимать… C#, Разработка ботов ∙ 4 ставки |
Сниппет Zennoposter |
Нужен специалист по С# иReact сделать задание по ТО безопасности сайтаВыполнять задачи по безопасности сайта. Исправить ошибки и уязвимость и уязвимость на SQLI Есть это по безопасности сайта. Возможно частичное знание реакта C#, Защита ПО и безопасность ∙ 2 ставки |