Вопрос

Какой из этих технологических наборов для многопользовательских онлайн-игр проекта Требования к проекту: 1. Способен обрабатывать 2K-5K пользователя в любой момент времени. 2. Клиентская библиотека для iPhone и Android (родной, без JavaScript). 3. Клиентская библиотека для Microsoft Windows (самое главное), также для Mac OS X и Linux. 4. Хорошая документация, специально для разработки мода 5. Проект не является открытым источником. Итак, можно использовать только библиотеки с подходящей лицензией.

Я могу программировать в Erlang и Java, а также язык программирования не является проблемой.

Я смотрел на следующие серверные технологии, такие как Openfire, Tigase, Ejabberd и Rabbitmq. Все хорошо для моего проекта, но я хочу узнать больше о том, что набирает мои потребности, AMQP или XMPP.

Какое AMQP предлагает специально для онлайн-игр в реальном времени. Это лучший вариант тогда XMPP?

Это было полезно?

Решение

Люди Линден Лаборатории (вторая жизнь) сделали тщательное сравнение множества систем обмена сообщениями, которые вы должны прочитать:

http://wiki.secondlife.com/wiki/message_queue_evaluation_notes.

Для чего стоит, я использую Zeromq в проекте, и это действительно интересно, потому что, в зависимости от случая использования, вам не нужен узел брокера.

Другие советы

Ключевое различие между XMPP и AMQP - это двоичный контент. AMQP обрабатывает двоичные данные просто хорошо, а XMPP кажется более предназначенным для XML. Лично для онлайн-игр я использую буферы протокола Google для форматирования и анализа сообщений, а также с их очень маленьким двоичным следом, я был бы более склонен использовать AMQP для доставки этих сообщений.

Но рассмотрите возможность использовать AMQP Server, который вы хотите использовать. Я был укушен, используя rabbitmq для моего сервера AMQP в прошлом. У RABBITMQ нет никаких объектов управления потоком, вообще. Поэтому, если ваши клиенты отправляют сообщения быстрее, чем ваш сервер может потреблять их, буферы на сервере могут заполнить и ударить сервер вверх. Более поздние версии RABBITMQ реализуют контроль потока в чрезвычайно грубый путь: они остановлены все Потребители в системе, пока память не устранится.

Я никогда не пробовал Zeromq; Возможно, это будет лучше для вещей, которые я использовал rabbitmq для ...

Пользователи 5k не рассказывают мне много о своем поведении, но если они все будут представлены один запрос в рамках того же 10 секунды, то скажем, вы бы искали в 500-1000 запросов в секунду.

У меня был Active / MQ, работающий на моем относительно низкой мощности, легко обработке 300 запросов в секунду, и поэтому я бы счастливо рекомендую это здесь. Вы также можете настроить кластеры брокеров и достичь горизонтальной масштабируемости. Вы можете использовать HTTP-протокол (STOP) или его родной бинарный протокол. Множество библиотек API клиента также для C / C ++, Java, JavaScript и других. Есть некоторые начальные Поддержка AMQP.

Вы не упомянули никаких требований настойчивости, но я снова бы подумал, что большинство RDBMS достаточно. Тем не менее, некоторые из баз данных ориентированного на документ и базы данных большого стола выглядят интересными из горизонтальной перспективы масштабирования.

Я также нашел Apache верблюда высокопроизводительного, и я настоятельно рекомендую это. Верблюд используется для реализации вашего логического слоя.

«Надеюсь, что это поможет.

XMPP можно использовать в текстовых играх. http://gamerunes.com.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top