Что значит mq в КС:ГО

Параллельно к основной работе, я в «фоне» обдумываю и прикидываю реализации архитектуры для игровых проектов (напомню, что основная область моих интересов и работ — создание онлайновых браузерных игр). Последнее время я все чаще и чаще возвращаюсь к мысли, что интересно было бы реализовать основной игровой сервер на основе очередей сообщений (MQ или Messages queue). То есть, движок такой игры будет представлять собой набор компонентов, которые будут общаться между собой посредством асинхронных сообщений, а каждый компонент может быть как генератором сообщений, так и подписчиком, то есть исполнять другие сообщения.

Такой подход, насколько я понимаю, широко применяется в мире Java, там для этого есть стандарт Java Message Service (JMS) и применяются брокеры сообщений и на этом базируется архитектура Enterprise service bus (ESB), например, Apache ServiceMix. Но для нас это пока высокая сфера крупных проектов, а в специфике веба и веб-ориентированных приложений я бы хотел рассмотреть, можно ли что-то сделать подобное, но с меньшими затратами и обеспечить приложению отказоустойчивость, распределение нагрузки и асинхронную обработку. И конечно, очень желательно, чтобы это было реализовано на РНР как основном языке реализации всех компонентов сервера.

ЧТО ТАКОЕ MQ В SAMP?

И так, еще раз — MQ, это архитектура и ПО промежуточного уровня, которое занимается сбором, хранение и маршрутизацией (распределением) сообщений между компонентами. Я не претендую на полноту описания, и, вполне возможно, не учитываю множества нюансов, поэтому не рассматривайте мои определения как аксиомы, лучше всего почитать дополнительную литературу, если вы хотите поглубже разобраться в архитектуре MQ (например, вот эти статьи: [1], [2], [3]) и определение в Wikipedia — Message queue

Пока давайте посмотрим очень кратко, обзорно, какие системы реализации систем сообщения есть, а, главное, какие из них можно рассматривать в качестве основы для специфика моего проекта. И хотя я думал рассмотреть только РНР реализации, оказалось, что нужно «копать глубже», поэтому мы затронем и системы на других языках, но обладающие возможность взаимодействовать с РНР-приложениями.

Apache ActiveMQ — открытая реализация брокера сообщений (Message Broker) и Enterprise Integration Patterns (если сейчас и очень кратко — расширение для реализации дополнительной обработки согласно правилам). Этот проект, по моему мнению, из всех открытых, самый мощный и развивающийся, недавно вышла версия 5.1.

Он реализовывает множество стандартов и обеспечивает все возможности, необходимые для решений уровня Enterprise, входит в стек Java-технологий от Apache. Что меня заинтересовало, так это возможность кросс-языкового обмена сообщениями, а значит — клиенты могут быть реализованы на любом языке. Для платформ Java, C, C++, C# это библиотека OpenWire, реализующая Wire протокол для нативного доступа к MQ, для остальных языков, включая, что нам и интересно, РНР, есть Stomp — реализация библиотек для разных скриптовых языков, которая превращает сообщения в формат JMS. Кстати, если необходимо обеспечить безопасную коммуникацию и передачу сообщений, можно использовать SSL.

  Как отключить траву в КС:ГО

СПРОСИЛ «ЧТО ТАКОЕ MQ?» В РЕПОРТ на ONLINE RP! SAMP MOBILE #sampmobile #онлайнрп #onlinerp #gtasamp

MQS (Minimalist Queue Services) — проект, если можно так сказать, с друго конца. Это небольшая система, написанная на Perl, организовывает систему очередей сообщений, используя XML-RPC протокол, сами сообщения могут хранится как в любой базе данных, так и в файлах. К сожалению, по всей видимости, проект заброшен, так как последняя новость на сайте датирована апрелем 2005 года, а текущая версия — 0.0.14.

Spread — еще одна реализация очереди сообщений, на этот раз на С++, и версии есть для различных платформ, включая Win32, Linux, BSD и MacOS. Текущая версия — 4.0. Система распределенная и ориентирована на высокопроизводительные системы, где клиентов и, соответственно, сообщений, очень много. Заявлена поддержка, в последней 4.0 версии, технологии Virtual Synchrony.

Что интересно — в поставку сразу включены бинарные версии для нескольких платформ, а также встроенные интерфейсы для некоторых языков — C/C++, Java, Perl, Python, Ruby. Странно, что четвёртого Р — РНР, среди них нет, но существует расширение в PECL, которое реализовывает весь интерфейс Spread API. Текущая версия 2.1 и достаточно новая, значит проект развивается. Существуют и реализации для других языков, в том числе и альтернативы встроенным интерфейсам, поэтому посмотрите на список здесь, там даже для MS Excel есть расширение. Среди интересных проектов — модуль mod_log_spread для Apache, позволяющий собирать логи доступа с нескольких веб-серверов.

RabbitMQ — высокопроизводительная платформа, написанная на Erlang, основанная на Open Telecom Platform, а значит — очень надежная и масштабированная система, часто применяемая в телекоммуникационных приложениях и других подобных системах. Есть интерфейс только для Java и C++. Система поддерживает стандарт AMQP (Open Standard for Messaging Middleware). Система интересная, знать бы только Erlang, хотя что-то мне подсказывает, что проектируя весь серверный модуль на этой платформе, мы получили бы много «плюшек», в частности, на этой же платформе написан самый популярный Jabber-сервер ejabberd, который также можно применять в он-лайн игровых проектах.

Beanstalkd — также интересный проект, созданный в рамках разработки одного из приложений для социальной сети Facebook, которым пользуется около 10 млн человек (приложением, не сетью). Это специализированный сервер для хранения и обработки очередей заданий, использующий хранение данных в памяти для обеспечения скорости, однако в ущерб отказоустойчивости.

  Читы для surf CS:GO

Этот проект очень похож на уже ранее описанный нами MemcacheQ, да и сами разработчики выражают благодарность создателям memcached за принципы архитектуры и протокол. Система предназначена для создания асинхронной очереди обработчиков пользовательских задач, которые не требуют немедленного ответа, например, отсылки писем, фоновые обработки и т.п. Существуют клиентские API для различных языков, в том числе для Erlang, OCaml, Perl, PHP, Python, Ruby. Для РНР библиотека расположена здесь и пока имеет версию 0.11, сама разработка началась всего пару месяцев назад (судя по регистрации проекта). Детальнее можно почитать отличный обзор: Beanstalk Messaging Queue Сервер написан на С, что обеспечивает высокую скорость работы, однако специфика проекта в плане хранения всех данных в оперативной памяти не подойдет для тех сфер, где остро необходима максимальная отказоустойчивость, пусть даже ценой дополнительного ПО и затрат на хранение данных в базе.

Пока это все. А как же РНР, спросите вы? Описанные решения основаны на сторонних платформах, однако имеют библиотеки для обеспечения коммуникации с РНР-приложениями. Но существуют и нативные, РНР решения такого рода приложений, конечно, не полные аналоги, здесь уже скажется специфика среды РНР, однако достаточные для многих областей применения. О таких решения я расскажу вам в продолжении этого материала.

Источник: habr.com

Что означает m_q в Самп?

Это школьники- подростки придумали для того чтобы спровоцировать агрессию у оппонента.Мода сейчас такая-чуть что мамку вспоминать,только так видимо могут задеть друг друга за живое.M_q дословно-мамке привет.Чего не папке интересно?Хорошо,что админы сампа наказывают за такое.

модератор выбрал этот ответ лучшим
комментировать
в избранное ссылка отблагодарить
Evain­ a [195K]
3 года назад

Это выражение носит негативный характер и не рекомендуется его употреблять вообще. Обычно таким выражением пользуются подростки в социальной сети, которые хотят чем-то унизить или оскорбить другого пользователя, задев его за «живое», оскорбив в грубой форме его маму.

Организаторы обычно банят таких пользователей.

комментировать
в избранное ссылка отблагодарить
Гориз­ онт [14.2K]
2 года назад

Многие неадекватные школьники и дети бывает оскорбляют и негативят других игроков в GTA SAMP (видимо в кайф выводить людей и жить в агрессии). Так вот, термин «MQ» означает как ни что иное «мамке привет». Это считается оскорблением и за такое выражение администрация сервера должны банить и банят игроков, ведь оскорбление родных и близких это в никакие ворота не лезет и это делает морально низкий человек.

Источник: www.bolshoyvopros.ru

  Как включить 4 на 3 в КС:ГО

Что такое MQ? Основные понятия

Что такое MQ? MQ — очередь сообщений, которая позволяет приложениям общаться, отправляя сообщения друг другу, и обеспечивает временное хранилище данных, когда целевая программа занята или не подключена.

Messages queue: базовые понятия

Очередь — это линия вещей, ожидающих обработки в порядке очередности, начиная с начала строки. Представляет собой очередь сообщений, отправляемых между приложениями. Включает последовательность рабочих объектов, которые ждут обработки.

Сообщение — это данные, передаваемые между отправителем и приложением-получателем. Что такое MQ на деле? Примером сообщения может быть то, что говорит системе о начале обработки задачи, и может содержать информацию о завершенной задаче.

что такое mq

Очередь сообщений

Базовая архитектура очереди сообщений проста: есть клиентские приложения, называемые производителями, которые создают сообщения и доставляют их в очередь. Другое приложение, называемое потребителем, подключается и обрабатывает сообщения. Уведомления, помещенные в очередь, сохраняются до тех пор, пока потребитель не получит их.

Messages queue обеспечивает асинхронный протокол связи. Система, которая помещает сообщение в очередь, не требует немедленного ответа на продолжающуюся обработку.

Что такое MQ на примере почтовых сообщений? Email — лучший пример асинхронного обмена сообщениями. Когда отправляется электронное письмо, отправитель может продолжить обработку других данных без немедленного ответа от получателя. Этот способ обработки сообщений отделяет производителя от потребителя: корреспондентам не нужно одновременно взаимодействовать с очередью сообщений.

Что такое MQ? Технологии обработки

Развязка используется для описания количества фрагментов системы, которые зависят от других компонентов. Развязка — это процесс их разделения с целью более замкнутой функциональности. Система считается развязанной, когда два или более компонента могут взаимодействовать без подключения. Она может оставаться полностью автономной. Развязка часто является признаком хорошо структурированной компьютерной системы.

Если один процесс в развязанной системе не обрабатывает сообщения из очереди, другие сообщения могут быть добавлены в очередь и обрабатываться, пока система не восстановится.

messages queue

Пример очереди сообщений

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

Что такое MQ? Это очередь сообщений, которая поддерживает процессы в приложении отдельно и независимо друг от друга. Первому процессу никогда не потребуется ссылаться на другой процесс или отправлять уведомления другому компоненту. Он может просто поместить сообщение в очередь, а затем продолжить обработку. Другие процессы также могут осуществлять свою работу независимо.

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

Источник: www.syl.ru

Рейтинг
( Пока оценок нет )
Загрузка ...