В настоящее время у нас есть служба WCF, которая начинает достигать своих пределов производительности.WCF Service Design
Мы решили добавить еще один сервер, на котором будет размещен другой экземпляр службы WCF.
У нас есть веб-приложения, которые должны связываться с определенным сервером на основе контекста ... например. Если веб-приложение имеет дело с объектами из ServiceInstance1, запросы должны быть направлены в EndPoint ServiceInstance1. Если веб-приложение имеет дело с объектами из ServiceInstance2, запросы должны быть направлены в EndPoint ServiceInstance2.
Первоначально я предполагал, что можно создать «промежуточную службу» или «диспетчер служб», ссылка на службу веб-приложения будет обновляться с отдельного экземпляра службы до «промежуточной службы» или «диспетчера служб», и упомянутая служба будет выступать в роли «Брокера» для различных Служб.
Как это делается?
В настоящее время я добавил ServiceReference для каждой службы от Менеджера, однако кажется, что после того, как Служба «Ссылка», ее типы становятся специфичными для типов ServiceReference, например.
Тип ServiceInstance1 - это все {ServiceInstance1}. Тип ServiceInstance2 - все {ServiceInstance2}.
Мне нужно, чтобы типы были одинаковыми в конце веб-приложения, поэтому это, очевидно, кажется неправильным способом.
Мне также хотелось бы, чтобы при вызове методов, вызываемых клиентом, созданным при ссылке на «промежуточную службу» или «диспетчер служб», вызывался правильный экземпляр службы, например.
IServiceManager.GetProjectById({GUID}) ->
Возвращается к ServiceManager -> Определяет, какой хост имеет проект и возвращает ProjectObject от правильного ServiceInstance.
Где ProjectObject - это тип, определенный в ServiceInstance1 и ServiceInstance2.
Я думаю, что для первоначальной службы необходимо, чтобы некоторые из DLL были вытащены, чтобы на них можно было ссылаться со стороны веб-приложения, а ServiceManager и клиент GenericWCF.
Если я прав ура для меня Если кто-то может указать мне в правильном направлении, я был бы признателен. Если я ошибаюсь, кто-то может ругать меня и показать мне, как это правильно сделано!
Используя стратегию маршрутизации, вы переместите свой масштабный лимит с вашего серверного сервера (ов) на сервер маршрутизации. Он также добавляет еще один сервер, который вы должны приобрести, поддерживать, защищать и т. Д. Твердая стратегия балансировки нагрузки позволит вам намного дальше, намного быстрее. – Mark