Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.02.2012, 12:53
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 1  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Question 1 клиент + несколько серверов

Я никогда не делал больших проектов нуждающихся в нескольких серверах, но чувствую близится момент.

Как это делается?

Например когда 1 флеш клиент+ 1 сервер то

Делается запрос по определенному ip сервера для обмена данными

А если например у нас приложение по конверированию видео, или прило в котором 100000 пользователей в день

То как распределить нагрузку получаемую от клиентов на 2 сервера поровну? При том надо чтобы если на обеих серверах будут mysql базы с полями user , count , time то надо чтобы как то данные на обоих серверах синхронизировались??????

Или возможно допустим такой вариант: есть основной сервер и он переправляет запрос второму серверу если он(первый) слишком нагружен???


Как это делается????????




Много раз слышу что говорят: у меня 10 серверов на этом приложении
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 25.02.2012, 16:16
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Балансировка делается не на клиенте. Клиентское приложение вообще не должно быть в курсе, как обрабатываются его запросы, одним сервером или 10-ю. Эти вопросы лучше задать на форумах по серверному программированию и администрированию сетей.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 25.02.2012, 16:56
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 3  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Мне проблема нескольких серверов видится следующим образом. Есть один сервер "распределитель", его IP знают клиенты, к нему и подключаются. Задача этого сервера состоит в том, чтобы говорить подключающимся к нему клиентам на какой адрес им следует переподключиться, чтобы начать работу уже с основным сервером. Соответственно "распределитель" должен знать о текущей загруженности каждой копии основного сервера, чтобы принимать решение, какой IP выдать очередному клиенту.

Старый 25.02.2012, 23:47
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 4  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
Да, это так мне тоже видиться, но как синхронизируются данные.!? Все кажется таким геморойным. А вдруг решение где то на поверхности
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 26.02.2012, 08:10
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 5  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Есть данные двух типов:
1) оперативные
2) архивные

Оперативные хранятся в том же распределенном memcached. Можно поднять memcached на каждом из ваших серверов. При этом каждый ваш сервер будет являться клиентом распределенного memcached хранилища.

Архивные данные хранятся в БД. Для БД отводится отдельный сервер видимый только изнутри вашей сети.

Старый 26.02.2012, 16:44
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 6  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
А если нужно 2 бд??? То select * from делать из 2 х серверов?
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 27.02.2012, 09:00
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 7  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
Если один БД сервер не справляется то надо делать кластер БД серверов.
К примеру погуглите "кластеризация MySQL"

Старый 27.02.2012, 11:30
Azo вне форума Посмотреть профиль Отправить личное сообщение для Azo Найти все сообщения от Azo
  № 8  
Ответить с цитированием
Azo
 
Аватар для Azo

Регистрация: Nov 2004
Адрес: Архангельская область
Сообщений: 492
Отправить сообщение для Azo с помощью ICQ Отправить сообщение для Azo с помощью AIM Отправить сообщение для Azo с помощью Yahoo
понятно спасибо..
__________________
-------------------------------
FLASH FLASH FLASH FLASH FLASH

Старый 03.03.2012, 14:23
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 9  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Кластер с общей базой данных
Мы можем запустить несколько серверов в параллели, НО разделив игровой мир на Регионы, в каждом регионе будут свои пользователи, не пересекающиеся с другими регионами. Этим подходом мы распределяем пользователей по регионам (серверам), за это может отвечать некий балансировщик нагрузки. Решение старое но проверенное временем. Каждому запущенному экземпляру сервера нужен доступ до базы данных (данные о мире, данные о игровой логике, таблицах рекордов и пр.), для этого служит выделенный сервер базы данных.
Мы можем запустить несколько серверов в параллели, поддерживая целостность приложения через базу данных (целостность списка пользователей, доставлять принимать сообщения и пр). Решение накладывает очень большие запросы на производительность сервера базы данных и необходимость кластеризации оного с применением кэширования запросов (memcached http://www.danga.com/memcached/)

Минусы:
- Слабое место по нагрузкам и устойчивости — сервер базы данных
- Слабое место стоимости — сервер базы данных

Кластерное решение от Terracotta
Отказаться от БД в пользу общего разделяемого пространства данных для JVM разных серверов. Подключив серверы мы можем делится различными данными, рассылать/получать события из любого места.



Мы не тратим время сериализацию объектов — обычные Java objects. Можно назвать это сетевой оперативной памятью.

Дополнительно:
http://www.smartfoxserver.com/downlo...Clustering.pdf
http://en.wikipedia.org/wiki/Terracotta_Cluster
http://www.infoq.com/articles/open-terracotta-intro
__________________
Отряд Котовскага

Старый 04.03.2012, 13:56
kackbip вне форума Посмотреть профиль Отправить личное сообщение для kackbip Найти все сообщения от kackbip
  № 10  
Ответить с цитированием
kackbip
 
Аватар для kackbip

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
В качестве "сетевой оперативной памяти" я бы сначала начал смотреть в сторону memcached - попроще будет.
Если нужно что-то по-сложнее можно еще использовать hazelcast.

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:44.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.