Улучшение производительности для веб-сервисов
У нас есть веб-сервис, который будет вызывать вас, чтобы указать дату доставки продукта при покупке на сайте eComm.
Мы используем IBM Sterling Order Management в бэкэнде, его веб-сервис OOB и сервис OOB.
Этот веб-сервис (WSDL) занимает больше времени, более 40 секунд, что создает время для исключения в других интегрированных системах (Middleware).
Поэтому мы хотим улучшить производительность этого веб-сервиса. Не могли бы вы помочь мне предоставить способ улучшить производительность? Будет ли он улучшен, если спецификация Сервера будет обновлена? Поскольку это сервис OOB, мы не можем его настроить.
3 ответа
Прежде всего вам необходимо выяснить узкое место в производительности. Для начала вы можете добавить подробный след на веб-сервисе OOB. Используйте журналы и посмотрите, можете ли вы сосредоточиться на каком-либо конкретном компоненте или sql, занимая большую часть времени. Если это sql, вы можете настроить / настроить OOB-запрос / таблицы, используя индексы. Если у вас реализованы какие-либо пользовательские выходы (для API OOB), убедитесь, что они скудны и не делают дорогих вызовов API, таких как changeOrder API.
Сначала попытайтесь выяснить, где на самом деле проблема, и, следовательно, вот несколько указателей: 1) Проверьте в OMS, сколько времени занимает служба с тем же вводом, который вы используете для вызова веб-службы. 2) Если с момента окончания ответа OMS все в порядке, проверьте задержку / пропускную способность сети. 3) загрузка процессора при обращении к веб-сервису.
Один из вопросов, которые здесь необходимо задать, заключается в том, должен ли веб-сервис отвечать фактическими результатами обработки или если он может переместить фактическую обработку в фоновый режим, например: отдельный сервер интеграции и просто ответить простым подтверждением запроса веб-сервиса. Если службе нужно ответить только подтверждением, вы можете переместить фактическую обработку в отдельную асинхронную службу.