2016-11-05 2 views
0

Мы создали службу TeamViewer, где клиенты подключаются через SSL к нашим централизованным серверам. Другие клиенты также могут подключаться к серверу, и мы можем настроить туннель через нашу службу, чтобы обеспечить возможность одноранговой связи без проблем с NAT или брандмауэром.Сервис Ткань и TCP-соединения

Это прекрасно работает с Azure Cloud Services, но мы хотели бы отойти от Azure Cloud Services. Сервисная ткань, похоже, подходит, потому что она поддерживает ARM, а также позволяет значительно мелкозернистые сервисы и делает обновление частей системы намного проще.

Я знаю, что микросервисы в Service Fabric могут быть работоспособными, но все примеры используют постоянные данные как состояние. В моей ситуации TCP-соединение также является частью состояния. Можно ли использовать TCP с тканью обслуживания?

Конечная точка TCP должна поддерживаться в одном экземпляре (в течение нескольких дней), поэтому это делает сложную модель всей модели обслуживания.

ответ

1

Конечно, вы можете подключить пользователей к вашим услугам по любому протоколу, который вы хотите. Ваш сервис звучит очень сдержанно для меня так же, как состояние пользовательского сеанса является состоятельным - вы хотите, чтобы пользователи возвращались к тому же месту, где находятся их данные. В вашем случае это «данные» - это TCP-соединение. Но нет никакой гарантии, что конечная точка TCP будет поддерживаться в течение нескольких дней в . Любые системные машины терпят неудачу, сбои программного обеспечения, исправления ОС и т. Д. Вы должны быть готовы к разрыву соединения, чтобы быстро восстановить его. Сервис Serviceful для сервисов отлично подходит для этого. Отказоустойчивость службы с сохранением состояния на другой машине чрезвычайно быстро (миллисекунды). Конечно, вы не можете реплицировать текущее соединение, но вы можете реплицировать все метаданные, необходимые для восстановления соединения, если оно ломается.

+0

Мы устойчивы, когда соединение TCP прекращено (клиент просто подключается к другому экземпляру). В то же время результаты буферизуются (в течение ограниченного периода времени). Я все еще сомневаюсь, следует ли использовать Service Fabric. Роуд докеров может быть так же полезен для нашего сервиса, и я предполагаю, что поддержка Docker для Windows в Azure будет в ближайшем будущем. –