Поддержание сеанса при асинхронных вызовах в Mule

У меня есть конкретное требование, согласно которому Mule будет извлекать информацию из системы провайдера и отправлять ее в другую систему, существует серия таких асинхронных вызовов, в которых мы должны сопоставлять каждое сообщение с конкретным сеансом пользователя, может ли кто-нибудь поделиться своим мнением о том, как мы можем поддерживать сеанс в муле для асинхронных вызовов? Один подход, который я думал, чтобы сохранить его в БД, но это вызовет проблемы с производительностью. Любые мысли будут высоко оценены.


person user6284034    schedule 23.11.2016    source источник


Ответы (1)


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

person Nuno    schedule 09.12.2016
comment
Спасибо @Nuno за ответ, есть ли какие-либо ограничения на использование хранилища объектов, что я узнал, так это то, что оно не может обрабатывать огромное количество данных в нем и имеет какой-то верхний предел? - person user6284034; 12.12.2016
comment
Если вы запускаете свое приложение в CloudHub, у вас есть ограничения. Если вы работаете локально, я думаю, что единственным ограничением является размер вашей кучи. Вы можете проверить этот пример, чтобы сохранить хранилище объектов в базе данных ( рекомендуется для кластерных сред). Я не уверен (надеюсь, я ошибаюсь), но объекты в хранилище сохраняются в памяти, даже если вы используете постоянное хранилище объектов (однако, если вы перезапустите приложение, вы сохраните свой объект). Но вы можете проверить это, выполнив некоторые тесты. Надеюсь, поможет. - person Nuno; 12.12.2016