|
Как создать отказоустойчивый сервис
|
|||
---|---|---|---|
#18+
Существует некий веб сервис, через него идет достаточно приличный и беспрерывный поток данных, все эти данные обрабатываются и складируются в БД. Периодически этот сервис не справляется с потоком информации, а иногда еще и отключается по техническим причинам. Есть мысль создать второй аналогичный сервис, но как пользователь будет знать о его существовании? Создать некий прокси балансирующий нагрузку, но возникает вопрос, а что если он упадет, как очень оперативно его подменить, в датацентрах техподдержка раскачивается достаточно долго, а даже при отключке даже на 10 минут люди уже начинают ворчать. И второй момент, как грамотно синхронизировать базы между этими серверами, идентификаторы записей должны быть int и уникальны в обеих базах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 12:48 |
|
Как создать отказоустойчивый сервис
|
|||
---|---|---|---|
#18+
Гость123Существует некий веб сервис, через него идет достаточно приличный и беспрерывный поток данных, все эти данные обрабатываются и складируются в БД. Периодически этот сервис не справляется с потоком информации, а иногда еще и отключается по техническим причинам. Есть мысль создать второй аналогичный сервис Логично, дублирование - типичный первый шаг в попытке повысить надёжность (и сложность, что требует доп.усилий по обеспечению надёжности :) ) Гость123но как пользователь будет знать о его существовании? Создать некий прокси балансирующий нагрузку, но возникает вопрос, а что если он упадет, как очень оперативно его подменить, в датацентрах техподдержка раскачивается достаточно долго, а даже при отключке даже на 10 минут люди уже начинают ворчать. Если вы опасаетесь даже таких ситуаций, то: 1 вариант: снабжать "пользователя" списком альтернативных сервисов 2 вариант: снабжать "пользователя" списком альтернативных прокси, которые имеют списки альтернативных сервисов :) 3. Использовать инфраструктуры, предоставляющие более надёжный "хостинг". Гость123 И второй момент, как грамотно синхронизировать базы между этими серверами, идентификаторы записей должны быть int и уникальны в обеих базах. Судя по этой фразе, веб-сервис и БД у вас живут вместе, и, заводя второй веб-сервис, вы предполагаете, что будете оперировать с двумя БД. Во-первых, это не обязательно, и эту проблему можно решить, создав кластер из СУБД. Во-вторых, эффективное решение синхронизации 2-ух разных БД сильно зависит от выбранного вами СУБД. В-третьих, повышая сложность системы, приходится всё время оглядываться на ограничения и оправдывать затраты (про которые вы довольно мало рассказали). Отсюда и много теоретизирования :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2010, 13:26 |
|
Как создать отказоустойчивый сервис
|
|||
---|---|---|---|
#18+
да можно всё сделать, только для начала определитесь, что вы делаете за кластер - LB, HA или всё сразу если HA без LB то проще репликацию баз master->slave делать по-моему умеют вообще все базы, или же NAS/shared storage во спасение, но это в общем случае дороже переключение IP адреса с рабочей ноды на резервную по хартбиту - тоже есть масса утилит если это Linux - то RedHat Cluster, если Windows server - там кластер встроенный в общем не особо сложно но если вы этого никогда ещё не делали, то советую пригласить шарящего специалиста задорого, чтобы он всё по крайней мере объяснил а не пытайтесь сами всё изучать по ходу делания - иначе получится всё ещё хуже ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2010, 01:02 |
|
|
start [/forum/topic.php?fid=33&fpage=33&tid=1548321]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 444ms |
0 / 0 |