2008-12-05 7 views
1

Я управляю OLTP-системой, которая позволяет использовать SSL-соединения через Интернет на нескольких сайтах. Я хотел бы найти эффективное решение, как прозрачно и автоматически перенаправить транзакционные соединения, когда один сайт не работает. Бонусные баллы за то, что они рассматривают сайт, когда он на самом деле недоступен или не может подключиться, но просто задерживается или перегружается или отправляет плохие результаты.Может ли «интернет» перенаправлять запросы соединения между удаленными серверами, когда один из них отключен?

Например, пользовательская система будет прикреплена к www.abcdef.com или 123.234.56.7 и фактически будет перенаправлена ​​на one.abcdef.com/two.abcdef.com или 99.5.2.1/68.96.79.1 в зависимости от того, какой сайт работает. Это очень похоже на балансировку нагрузки, но главным образом, как использовать сеть, чтобы избежать единственной точки отказа, а не как распространять работу между серверами.

Преимущества для пользователя: (1) им нужно знать только один URL-адрес или один IP-адрес для подключения и (2) их транзакции работают в нескольких разных сценариях сбоя. Например, если общественная сеть рядом с одним из сайтов выходит из строя или ошибочна, если локальный цикл для этого интернет-провайдера терпит неудачу, если внутренние маршрутизаторы или серверы терпят неудачу. Конечно, транзакции по-прежнему не работают, если проблема близка к пользователю.

ответ

0

Я думаю, что, возможно, один из способов сделать это - иметь избыточные серверы переднего плана, которые сидят за балансировщиком нагрузки. Эта интерфейсная система просто реагирует на запросы, перенаправляя их на реальные серверы, которые распространяются в разных местах. Ваш внешний сервер может периодически проверять, находятся ли другие серверы, а если нет, вывести этот сервер из состава. Наличие избыточных фронтов за балансиром нагрузки (или, возможно, только в кластере) не позволяет ему стать единой точкой отказа. Вы также можете иметь несколько интерфейсов с использованием циклического DNS-решения, расположенного в разных местах. Вероятно, вам нужно учитывать эту архитектуру в своем приложении.

Возможно, вы также захотите иметь избыточные сетевые ссылки на все сайты.

+0

Это лучшее решение - 12/5/08 полдень CT. Это еще одно описание «создать один очень хорошо связанный, очень пуленепробиваемый сайт и запустить концепцию балансировки сетевой нагрузки». Но он не полностью фиксирует единственный PoF с точки зрения достижения этого внешнего конечного сайта. – user43458 2008-12-05 18:08:30

+0

Похоже, что я описываю усовершенствованную систему DNS. Но это только перемещает точку отказа в DNS (и делает DNS сложным). Может быть, это всего лишь черепахи. Другими словами, проблема всегда может существовать где угодно, независимо от того, сколько слоев используется. – user43458 2008-12-05 18:14:28

0

ifstated может использоваться как интерфейс с pf (на OpenBSD и FreeBSD) для перенаправления трафика на онлайн-серверы.

man ifstated

Blockquote ifstated - Состояние интерфейса демон

ifstated демона выполняет команды в ответ на сетевые изменения состояния, которой он определяет путем мониторинга состояния интерфейса линии связи или управления exter- NAL тесты. Например, его можно использовать с carp(4) для изменения работы служб или для обеспечения того, чтобы интерфейсы carp(4) оставались в синхронизации, или с pf(4) для проверки доступности сервера или ссылки и изменения правил перевода или маршрутизации . Возможны следующие варианты:

1

Я один раз задал аналогичный вопрос много лет назад, и ответ имеет много общего с тем, сколько денег вы готовы потратить.

Есть аппаратные решения, устройства, единственная цель которых заключается в том, чтобы сидеть перед вашими серверами A и B, чтобы при выходе сервера A он прекращал отправлять запросы к нему и использует только сервер B. Преимущество этого в аппаратном обеспечении это производительность и надежность.

Это также помогает узнать относительную надежность всех компонентов вашей системы.Если это один из компонентов, о котором вы беспокоитесь, тогда вы можете сделать эту часть излишней и сконструировать остальную систему, чтобы сбить ее с одного на другой. Причина, по которой я говорю это, - нет идеального ответа.

Если, конечно, вы не пытаетесь создать что-то вроде системы обработки кредитных карт или другой аналогичной системы финансовой операции, где деньги не объекта: P

Наиболее распространенный сценарий является отказоустойчивость установки где при сбое до B.

Если вы ищете «безупречный» сбой, вы можете реализовать систему между клиентом и А и В, которая будет автоматически повторять и т. д. и возвращать ответ, даже если клиент не видит даже одной ошибки. Но это может быть проблемой с узким местом, и ТОГДА у вас есть проблема с другой системой, которая может или не может потерпеть неудачу. И теперь мы вернемся к моему второму абзацу .... :)

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

 Смежные вопросы

  • Нет связанных вопросов^_^