Мы разрабатываем проект, который включает около 10 различных служб WCF с несколькими конечными точками каждый. Одна из служб хранит несколько больших таблиц данных, хранящихся в памяти.WCF: совместное использование кэшированных данных по нескольким службам
Мы обнаружили, что нам нужен доступ к этим данным из другой службы. Вместо того, чтобы хранить 2 копии кеша, я хотел бы иметь возможность использовать эти таблицы для всех служб.
Я провел некоторое исследование и нашел несколько статей об использовании IExtension, прикрепленных к servicehosts для хранения общих данных.
При условии, что все службы будут работать под одним и тем же веб-сайтом, это сработает? И это правильный подход? Или я должен искать в другом месте?
Ну, это приложение среднего размера. Я согласен с точкой автономии службы. Первоначально данные были предназначены для чтения из БД из нескольких служб, но из-за проблем с производительностью мы хотим переместить его в кеш-память. Данные являются «основными» для многих служб, поэтому, хотя и неортодоксально, я думаю, что общий кэш делает смысл. –
Спасибо за разъяснение. Лично я бы, конечно, инкапсулировал кеш в другую службу и реализовал вызовы службы-службы. Я соответствующим образом обновлю ответ. – razlebe
Все правильно, но со всем уважением, это слишком схематическая точка зрения. По крайней мере, я знаю один тип взаимодействия между службами, которые должны выполняться не как «обычная услуга»: проверка маркера безопасности (если мы будем делать это на уровне приложения) между методом службы и поставщиком токенов безопасности (для этого требуется действительный список токенов). То же самое касается регистрации, регистрация - это нечто особенное. Если вы будете регистрировать один и тот же корпоративный автобус, вы можете легко его испортить. –