У меня есть небольшой опыт работы с WCF и хотел бы получить Ваше мнение/предложение о том, как следующая проблема может быть решена:WCF для общего доступа к данным
Веб-сервис должен быть доступен для нескольких клиентов одновременно службе необходимо вернуть результат из общего набора данных. Конкретный проект, над которым я работаю, должен хранить список IP-адресов/диапазонов. Этот список будет запрашиваться группой веб-серверов для проверки, и мы говорим о нескольких тысячах или более запросов в минуту.
. Мой первоначальный проект подхода заключался в том, чтобы использовать службу Windows как хост WCF с классом реализации контракта на обслуживание, который украшен ServiceBehavior (экземпляр ContextMode = доступ к ней. Таким образом, в основном у меня есть один сингл WCF с списком = shared data -> multiple clients. То, что мне не нравится в этом, заключается в том, что уровни данных и коммуникации объединены в один, и производительность мудрая, что это не кажется «правильным».
Что я действительно на самом деле (- хочу, чтобы служба Windows запускала экземпляр списка IP-адресов, содержащего объект класса контейнера, вторую службу, выполняющую реализацию контракта WCF-сервиса, и способ, которым последний запрашивал первый в хорошем ключе с минимальной блокировкой. Использование другого канала WCF на самом деле не заставило бы меня подальше от первоначальной реализации проекта или было бы?
Какой подход вы бы взяли? Проект по-прежнему находится на очень ранней стадии, поэтому полное повторное проектирование не вызывает сомнений.
Все идеи оцениваются. Спасибо!
UPDATE: набор данных будет изменен динамически. У веб-службы будет отдельный метод добавления IP или IP-диапазона, а кроме того, запланированная задача будет инициировать очистку данных каждые 10-15 минут в соответствии с некоторыми правилами.
ОБНОВЛЕНИЕ 2: будет запущен отдельный тестовый проект, который должен использовать MySQL в качестве базы данных (вместо этого в списке в памяти).
Ожидаете ли вы, что список сильно изменится, или он будет довольно статичным? –
Будет динамичным. Появились новые требования, поэтому я обновил вопрос. – Audrius