Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Система распределенной обработки задач на нескольких компьютерах

project expired


У нас есть сервис. Сервис реализован на базе .NET 4.5. Состоит из.:

  1. Web-часть (пользовательская и админская панели, а также API).

  2. Распределенная система для обработки запросов 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 не лучшая технология для такой задачи либо ошибка где то на нашей стороне.


Варианты решения которые видим

  • найти траблы существующего

  • взять другое решение


Просьба в заяввках оставлять свои предложения и желательно сразу уточнять ориентировочную стоимость и сроки.



Make a proposal!

The client doesn't want to make prepayment? Offer him to make a payment via Safe to avoid possible fraud.

  1.  506 
    4   7   0

    2 days1000 ₴

    Добрый день! Готов посмотреть, в чем там проблема. Скорее всего, в коде, который вычитывает данные из очереди. Цена указана за один полный день работы. Если там простой фикс, то хватит 1 дня. Если надо будет реализовать многопоточную логику чтения из очереди - то это дня два. Ну и вы должны понимать, что использование очередей - это асинхронный механизм, и нельзя требовать от него скорости отклика, как у синхронных запросов.

    О себе: более 10 лет опыта разработки под .NET (в основном, энтерпрайз сектор, сложные системы). Конкретно с RabbitMQ не работал, но работал с очередями в Azure/Amazon

    Ukraine Kyiv | 11 October at 20:57 |
  • Anton Kravtsov
    Complain | 11 October at 14:32 |

    1. Без досмотра кода оценить стоимость/сроки сложно...

    2. Конкретно с RabbitMQ я не знаком, но судя по тестам (пример от 2012 года) даже с сохранением на диск скорость обработки 4+ тыс. сообщ./сек., из чего можно сделать вывод, что проблема где-то в вашем коде.

  • Stas Ovan
    Complain | 11 October at 16:22 |

    Почитайте алгоритмы о философах, едящих спагетти )))

    В вашем случае надо использовать систему семафоров.

  • Атон Солодовой — project author
    Complain | 11 October at 18:41 |

    может про кроликов?

    p.s. мой ответ неясен? ну, врочем, также как и ваш)


  • Stas Ovan
    Complain | 11 October at 18:55 |

    Ясно. Ясно что вы нуль в программировании и это плохо для создания более-менее ясного техзадания.

  • Олександр Вишняк
    Complain | 11 October at 20:00 |

    Пф, так вы раздаете задачи или сообщения? И что увас за система а-ля "франкенштейн" со сторонними решениями, которыми вы не в состоянии управлять? Вы или найдите разработчика под RabbitMQ, если у вас доступ к их технологиям (где четко прописаны их возможности), или разрабатывайти свою систему управления, если есть свой подходящий сервер. Очереди и ситемы массового обслуживания в универах преподают на первых курсах. А вообще сделайте втык менеджерам за атаз типа "а эта технология нам точно нужна?".

  • Олександр Вишняк
    Complain | 11 October at 20:13 |

    P. S. С такими проблемами ищите АСУшника на пару с тестировщиком. Первый оформит по-человечески вашу систему от А до Я, а второй попробует определить дыры в существующей системе, чтобы не пришлось все переписывать с нуля. Я - не тестировщик, но помочь разобраться в общих решениях могу, чисто из интереса к ситуации.

  • Add

Client
Атон Солодовой
Ukraine Ukraine  4   0
Project published
11 October at 12:29
60 views
Payment methods
Share