Я нахожусь в процессе разработки клиент-серверного приложения, которое будет использовать WCF для связи с клиентом. Вполне возможно, что он может стать сильно загруженным и захотеть создать его распределенным образом. Для этого я разделил приложение на несколько сервисов. Может быть запущено N служб для обработки запросов.
- Служба входа
- игровой сервис
- обслуживание в номерах
- и т.д.
Служба входа в систему может иметь балансировщик нагрузки. затем он отправит запрос одному из запущенных игровых сервисов (на разных машинах может быть запущено N игровых сервисов).
То, что я пытаюсь выяснить, - это как сервис входа в систему узнает об игровых сервисах. Я могу придумать (на действительно высоком уровне на данный момент) два решения:
1) Когда появляется игровой сервис, он создает запись в базе данных, в которой говорится, кто это и где находится, сервис входа в систему проверяет там все сервисы. Похоже, это вызывает проблемы, сервисы сбрасываются, обновляется список.
2) Когда новая служба присоединяется, она связывается со службой входа в систему (не знаю, как это произойдет, предположите какое-то жесткое кодирование о том, как ее найти) и регистрируется в этой службе. Служба входа в систему может затем поддерживать DHT или какой-либо список среди них, чтобы они знали, куда направить запрос.
Я новичок во всем мире распределенных приложений и пытаюсь найти хороший способ сделать что-то. Этот проект частично для моих собственных знаний и приобретений, но я также надеюсь, что он превратится в работающее приложение.
Спасибо