XXL-MQ
XXL-MQ — это легковесный распределённый фреймворк очередей сообщений.
-- Главная страница --
## Введение
XXL-MQ — это легковесный распределённый фреймворк очередей сообщений.
Со свойствами горизонтального масштабирования, высокой доступности, накопления огромного объёма данных, единичной производительности запросов в секунду более 100 000, миллисекундной доставкой.
Поддерживает такие типы сообщений, как параллельные сообщения, последовательные сообщения, широковещательные сообщения, отложенные сообщения, транзакционные сообщения, повторное выполнение при сбое, контроль времени ожидания и другие.
Теперь этот проект открыт для использования; вы можете приступить к работе сразу после установки.## Документация
- [Документация на русском](https://www.xuxueli.com/xxl-mq/)
## Основные возможности
- 1. Простота использования: Одним строкой кода можно отправить сообщение; одним аннотацией можно подписаться на тему сообщений;
- 2. Лёгкость: Простое развертывание, не требует сторонних сервисов, за минуту можно начать работу;
- 3. Горизонтальное масштабирование: Центр управления сообщениями поддерживает бесконечное горизонтальное расширение, что включает две стороны: производительность создания сообщений и производительность потребления сообщений; Расширяйте кластеры линейно для повышения пропускной способности сообщений;
- 4. Высокий уровень доступности: Центр управления сообщениями может выдерживать частичное отключение примеров, не влияя на общую доступность кластера. Внутренний регистратор позволяет моментально удалить неработающие узлы, а также динамически перенаправляет службу сообщений;
- 5. Устойчивое хранение сообщений: Все сообщения сохраняются устойчиво, центр управления сообщениями поддерживает выбор очистки просроченных сообщений через конфигурацию;
- 6. Высокая безопасность данных: Данные сообщений хранятся в базе данных, обеспечивая транзакционную защиту данных, предотвращая потерю сообщений;
- 7.Обработка больших объемов данных: Сообщения хранятся в базе данных, поддерживают два типа хранения — "MySQL, TiDB", первый поддерживает миллион сообщений, второй поддерживает миллиарды сообщений (у TiDB теоретически нет ограничений);
- 8. Один узел TPS более 100К: Ограничение одного узла TPS зависит от метода хранения базы данных, при использовании "MySQL" один узел имеет TPS более 10К, при использовании "TiDB" один узел имеет TPS более 100К;
- 9. Отложенные задержки доставки: Центр управления сообщениями и клиентское приложение взаимодействуют через RPC с задержками в миллисекунды;
- 10. Разные режимы сообщений:
- Параллельные сообщения: Сообщения равномерно распределяются между активными потребителями данной темы, параллельное выполнение по разделам; Подходит для сценариев с высокой пропускной способностью, таких как отправка электронной почты или SMS;
- Последовательные сообщения: Сообщения фиксируются для одного из активных потребителей данной темы, последовательное выполнение FIFO; Подходит для сценариев с жесткими ограничениями на параллелизм, таких как акции flash sale или заказ билетов;
- Бродкаст сообщения: Сообщения будут переданы всем группам активных потребителей данной темы, все группы получат это сообщение, но каждая группа будет его обрабатывать только один раз; Подходит для сценариев бродкаста, таких как обновление кэша;
- 11.Отложенные сообщения: Поддерживается установка времени начала действия сообщения, после достижения этого времени сообщение будет обработано; Подходит для сценариев отложенного выполнения, таких как автоматическое отменение заказа при пропущенном сроке;
-
12. Транзакционное выполнение: При включении транзакционного режима потребителю гарантируется успешное выполнение сообщения только один раз;
-
13. Повторное выполнение при ошибке: Поддерживается установка количества повторных попыток выполнения сообщения, если выполнение завершилось ошибкой, сообщение будет повторено до истощения попыток или успешного выполнения;
-
14. Контроль времени ожидания: Поддерживается настройка времени ожидания сообщения, при превышении времени ожидания сообщение будет прервано;
-
15. Видимость сообщений: каждое сообщение в системе может быть просмотрено через веб-интерфейс онлайн, а также поддерживается редактирование содержания и состояния сообщений;
-
16. Отслеживание сообщений: поддерживается отслеживание пути выполнения каждого сообщения, что облегчает выявление проблем бизнес-процессов;
-
17.Уведомление при сбоях сообщений: поддерживается мониторинг сообщений на уровне темы (topic); при наличии сбоев сообщений активно отправляются уведомления по электронной почте. По умолчанию предоставляется уведомление по электронной почте при сбоях, но предусмотрены расширяемые интерфейсы для удобного добавления уведомлений другими способами, такими как SMS, DingTalk и т. д.;
-
- Контейнеризация: предоставляются официальные образы Docker, которые регулярно обновляются и публикуются на Docker Hub, что позволяет легко использовать продукт сразу после установки;
-
- Доступный токен (access token): для повышения безопасности системы, центр управления сообщениями и клиентская часть выполняют проверку безопасности, и только при совпадении доступных токенов сторон допускается общение.## Разработка
В середине 2015 года я создал репозиторий проекта XXL-MQ на GitHub и сделал первый коммит, затем начал проектирование системы, выбор UI, дизайн взаимодействия...
На данный момент XXL-MQ уже используется несколькими компаниями в своих продуктовых линиях. По состоянию на 18 сентября 2016 года, список компаний, использующих XXL-MQ, включает, но не ограничивается следующими:
-
- АгроИнтернет
-
...
Для регистрации новых компаний, использующих XXL-MQ, просьба воспользоваться формой регистрации. Регистрация проводится исключительно для продвижения продукта.
Приглашаем всех к использованию и развитию XXL-MQ, который будет продолжать развиваться вместе со своими пользователями.
Общение
Вклад
Приветствуем ваши вклады! Вы можете создать запрос на слияние (pull request) для исправления ошибки или открыть вопрос для обсуждения новой функциональности или изменения.## Авторское право и лицензия
Этот продукт является открытым исходным кодом и бесплатным, и он будет продолжать предоставлять бесплатную техническую поддержку сообщества. Индивидуальные пользователи и предприятия могут свободно использовать его.
- Лицензировано по Генеральной общественной лицензии (GNU General Public License) версии 3.
- Авторское право © 2015—настоящее время, xuxueli.
Продукт открыт для использования бесплатно, и мы будем продолжать предоставлять бесплатную техническую поддержку сообщества. Индивидуальные пользователи и предприятия могут свободно использовать этот продукт.## Поддержка
Независимо от суммы, ваше пожертвование — это выражение ваших чувств, большое спасибо :)
Перейти к пожертвованию
Независимо от размера вашего пожертвования, оно полностью выражает вашу благодарность, большое спасибо :)
Перейти к пожертвованию
Комментарии ( 0 )