Балансировка нагрузки Служба обработки песочницы MS Dynamics CRM 2011

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

Я регулярно выполняю большие пользовательские задания импорта в CRM, и все они включают вызов службы организации из пользовательского клиента для передачи записей в CRM. Записи проходят через пользовательские плагины в песочнице.

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

Вот что я попробовал до сих пор:

  1. Добавьте другой сервер со службой обработки песочницы.

                              / Sandbox Processing Service (crmsb1)
    Client > Front End (crm) <
                              \ Sandbox Processing Service (crmsb2)
    

    Добавление другого сервера с помощью службы обработки песочницы не помогло. Сервер переднего плана не распределял нагрузку на оба сервера, он продолжал использовать исходный сервер. Только при отключении службы обработки песочницы на первом внутреннем сервере второй сервер начал обрабатывать запросы плагинов. (Возвращение первого онлайн не помогло.)

  2. Два сервера с балансировкой нагрузки со всеми ролями.

                            / Full Server (crm1)
    Client > IIS ARR (crm) <
                            \ Full Server (crm2)
    

    Я последовал этому руководству (и многим другим) к письму и заставил веб-приложение работать через обратный прокси-сервер, но не смогло выполнить запросы через службу организации. После устранения бесчисленных ошибок WCF путем постоянного изменения еще одного параметра, я столкнулся с этой ошибкой The security context token is expired or is not valid. The message was not processed. оставив меня предположить, что балансировка нагрузки будет работать только для веб-приложения.

  3. Вызовите службу организации вручную на нескольких серверах.

            / Full Server (crm1)
    Client <
            \ Full Server (crm2)
    

    Мне удалось настроить клиент импорта для разделения задания импорта на несколько фрагментов и одновременного вызова всех конечных точек службы организации для каждого из фрагментов. Это значительно ускорило процесс импорта, как я и надеялся, и дает мне возможность масштабироваться еще больше, если это необходимо.

Я прочитал все, что мог найти по этому вопросу, но я все еще не уверен, как именно работает балансировка нагрузки в CRM 2011 и какие конфигурации возможны.

Эти два руководства широко использовали балансировку нагрузки, но они не описывают подробно, как они ее настраивали.

Это все настройки в тестовой среде, прежде чем я начну жить. Я использовал учетные записи домена для всех служб, настроил правильные имена участников-служб и не использовал SSL. Я пробовал с и без Client Affinity в ARR (он работает с файлами cookie, поэтому я предполагаю, что служба WCF не привязана к одному бэкэнду).

Мои вопросы следующие:

  1. Можно ли настроить саму службу обработки песочницы (1 выше) на нескольких серверах в активной / активной настройке (с балансировкой нагрузки) или она поддерживается только как активная / пассивная (HA)?

  2. Если единственный способ использовать несколько экземпляров службы обработки песочницы - это настроить несколько серверов с ролями переднего плана и внутреннего интерфейса (2 выше), есть ли способ использовать балансировщик нагрузки, такой как NLB или ARR, для службы организации или балансировщик нагрузки поддерживается только для веб-приложения, и мне нужно использовать третий метод, описанный выше, для балансировки нагрузки службы обработки песочницы?

1 ответ

Это ответ на ваш комментарий к моей статье ( http://bit.ly/QOEvLF). Я также отправлю ответ там:

Сервисы Sandbox не могут сидеть за балансировщиком нагрузки - или способ, которым они разработаны, не подходит для этой конфигурации. Я полагаю, что руководство по внедрению CRM содержит информацию об этом, но службы Sandbox откроют сетевой сокет и прослушивают определенный порт для трафика. Когда сервис песочницы успешно подключается к сети, он перезванивает в CRM, чтобы зарегистрировать себя как "доступный" (таким образом, такие службы, как асинхронный и внешний интерфейс, знают, что он доступен). Роли, которые требуют изоляции (песочница), будут затем округлять вызов в сервисы песочницы напрямую по этому каналу TCP по требованию. Для получения дополнительной информации об этом см. Это: http://bit.ly/CRMSetupFAQ. Также имейте в виду, что вам может потребоваться настроить собственное имя участника-службы для службы песочницы.

Дайте мне знать, если у вас есть дополнительные вопросы по этому вопросу - спасибо!

Шон

Другие вопросы по тегам