особенности построения собственной...
DESCRIPTION
TRANSCRIPT
Особенности построения собственной
полнофункциональной IM-сети
Ермаков Игорь
Зачем нужен собственный IM?
• Уникальный функционал, востребованный на рынке• Удобный доступ к сервисам портала• Привязка к собственному сервису• Дополнительные возможности обратной связи
Уникальный функционал
• Обмен сообщениями• Контакт-лист• Статусы друзей• Поиск пользователей• Передача файлов• Голосовые звонки• Видео звонки
Варианты
• XMPP - открытость, универсальность, следование стандартам, готовые парсеры.
• Собственный протокол – гибкость, скорость
• У обоих – отсутствие полноценного масштабируемого решения.
Протокол MRAP
• Простой бинарный протокол
Высокая скорость парсинга, Простота обработки,Низкая вероятность ошибок
TypeDlenMagic
Данные44 bytes
Серверная архитектура
• Монолитный многопоточный автомат• Одноранговые сервера, соединенные друг с другом• Авторизация через базу данных• Постоянное соединение с клиентом• Хранение сообщений в почтовом ящике
Возможности• Авторизация• Статусы (Presence)• Сообщения• Почтовые уведомления• Поиск Друзей• SMS • VOIP.GIPS• Передача файлов
• ICQ • Игры• Аватары• Скины• Продвинутый статус• Ignore и Invisible• Интеграция с вебом• Поиск друзей
Mail.Ru Agent
Users DBMySQL
Soft Load Balancer
Перенаправление
Авторизация
Mail.Ru Storage
•Контакты,•Emails,•Настройки
MRIM server
MRIM server
MRIM server
MRIM server
Кластер серверовКластер серверов
Mail.Ru Agent типы серверов
• Софтверный балансировщик
• Передача Видео. Flash Media Server
• Авторизаци. Mysql• Поиск. Поисковые сервера
gogo• SMS
Сервера в кластереСервера в кластере
• Сервер обмена сообщениями• Сервер WEB-агента• Сервер веб-статусов• File proxy• Voice proxyВсе сервера имеют постоянное
соединение. Хранят контакт листы, знание о
всех онлайн пользователях в кластере, обратные контакт-листы.
Вспомогательные сервераВспомогательные сервера
Поиск пользователей• Онлайн-статус• Регион (Страна/Город)• Пол• Возраст• День рождения• Анкета (Имя, Фамилия, Ник)• Email• Знак зодиака
Поиск. Вариант с БД• Таблица с большим количеством полей• Индексы на каждое поле• Композитные индексы• Дублирующие таблицы в памяти• Дублирующие разгружающие реплики• Большое количество изменений• Огромное количество выборок
Поиск. Наш вариант
MRIM serverMRIM server
Кластер серверовКластер серверов
Анкетные данные
MySQLАнкетные данные
•Users ID
•Найденные анкеты
Статистика поискаСтатистика поиска
• 25 М Доступных записей• 12 М Поисковых запросов• 3 М Запросов онлайн
Mail.Ru Agent. Статистика.Число активных пользователей (М)Число активных пользователей (М)
Число сообщений в сутки (М)Число сообщений в сутки (М)
Более 1 миллиона подключенийБолее 1 миллиона подключений