2016-07-04 2 views
0

Я хотел бы знать архитектуру чата реального времени для миллионов пользователей, таких как whatsapp.Java chat socket milion clients

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

я читал еще один вопрос, но я до сих пор есть сомнения. Скажите, правильно ли я говорю:

Клиенты подключаются к балансировщику нагрузки, которые решают дать подключение к одному из серверов whatsapp. Пример Clientâ подключения к Server1, ClientB подключения к Server2,

-Если Clientâ хочет общаться с ClientB, посылает сообщение на Server1, теперь это, как вы знаете, в какой сервер ClientB? Поддержание масштабируемости для миллионов пользователей)

Как реализовать чат для обработки миллионов пользователей?

ответ

1

Ключ - это база данных (или любая другая система сохранения), где сохраняется все входные данные от клиентов. Обычно в этих масштабах подходит key-value NoSql Database, например Apache Cassandra, Amazon Dynamo, или . Эти базы данных являются оптимальными для быстрой вставки и извлечения только с помощью ПК.

Все серверы должны быть без гражданства, поэтому клиент A подключается к серверу A и отправляет текстовое сообщение и идентификатор конечного клиента. Это сохраняется в БД. Затем клиент B соединяется с сервером B, который отправляется в базу данных и извлекает текст.

+0

Спасибо, но если я использую большую базу данных, если у меня есть миллион пользователей, каждый сервер должен искать среди миллионов запросов, которые вы хотите. Это занимает время – John

+0

Если вы выберете одну строку по PK (например, идентификатор клиента), тогда для этого может использоваться механизм базы данных. Все крупные социальные приложения используют эту архитектуру. –

+0

Вот очень подробное описание архитектуры, используемой instagram из их технологического блога. Они используют redis (ключ с открытым исходным кодом nosql db) для основного канала. они также используют традиционные СУБД и облачные хранилища, просто читают все об этом http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances –