Некоторые примеры и ошибки использования Docker Compose для развертывания RabbitMQ
Некоторые примеры и ошибки использования Docker Compose для развертывания RabbitMQ

Предисловие

RabbitMQ Это мощная система очередей сообщений с открытым исходным кодом, которая реализует эффективную передачу сообщений и асинхронную обработку. В этой статье в основном представлены его основанные на Docker-Compose изразвертывать Установитьи некоторыеиспользоватьизопыт。

Функции

  • зрелый, стабильный
  • Сохранение сообщений
  • Гибкая маршрутизация сообщений
  • Высокая производительность, высокая доступность, высокая масштабируемость
  • Система поддержки плагинов: RabbitMQ Благодаря богатой системе плагинов его функциональность может быть расширена с помощью Установить плагин, например Интерфейс. управления、Отслеживание сообщений、Преобразование сообщений и т. д.
  • Официально предоставляет .NET/Java SDK.

Использование

  • Используется в проекте для логирования, отправки сообщений, синхронизации данных и т.д., стабильно и надежно.
  • Инициализация бизнес-модулей, асинхронная обработка импорта данных
  • Выполните идемпотентную обработку,Разные сценарии и разные методы подтверждения,Предотвращение повторного использования сообщений
  • RabbitMQ по умолчанию не поддерживает отложенные сообщения,использоватьПлагин отложенного сообщенияПросто реализуйте это(Ограничено, поддерживает только сообщения с задержкой до одного или двух дней.
  • использовать .NET SDK: RabbitMQ.Client, вторичную инкапсуляцию мы поделимся позже.

упражняться

использовать Docker Compose V2 Установить rabbitmq v3.12.6

Подготовить

  • Текущая версия: v3.12.6.
  • использоватьзеркало:rabbitmq:3.12.6-management (приносить web интерфейс управления)
  • Порт по умолчанию: 5672: порт подключения приложения 15672: веб-консоль

Установите с помощью Docker Compose.

Эта статья основана на Docker V24 и Docker Compose V2,Установить Вы можете обратиться к предыдущемуизстатья

Инструкции по настройке
  • Зафиксированныйзеркало Версия:rabbitmq:3.12.6-management
  • обозначениеизимя хоста:rabbitserver
  • обозначение Имя виртуальной машины:admin_vhost
  • Укажите пароль учетной записи: root devops666
  • обозначениепорт:5672:порт подключения приложения 15672:web Интерфейс управления
  • Подключить каталог данных:./data:/var/lib/rabbitmq
  • Монтировать дополнительныеизплагин Оглавление:./myplugins:/myplugins RabbitMQ Каталог плагинов по умолчанию в контейнере: /plugins Не рекомендуется монтировать
  • Воля ./myplugins монтировать наконтейнериз,и Воляего присоединениеплагин Находитьиз Оглавлениесередина:RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'
  • Укажите сеть: DevopsNetwork (docker network create devopsnetwork)
Конфигурационный файл compose.yml

Подготовитьхороший compose.yml Копировать на сервер

тогда бегиdocker compose up -dВот и все

Язык кода:javascript
копировать
 version: '3.1'
 services:
   rabbitmq:
     image: rabbitmq:3.12.6-management
     container_name: rabbitmq_3_12
     restart: always
     # Имя узла кролик@rabbitserver, иначе он перейдет на контейнерID
     hostname: rabbitserver
     environment:
       # Имя виртуальной машины по умолчанию
       RABBITMQ_DEFAULT_VHOST: admin_vhost
       # имя пользователя
       RABBITMQ_DEFAULT_USER: root
       # пароль
       RABBITMQ_DEFAULT_PASS: devops666
       # Укажите пользовательский каталог плагина
       RABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'
     ports:
       - "5672:5672"
       - "15672:15672"
     volumes:
       - ./data:/var/lib/rabbitmq
       - ./myplugins:/myplugins
     networks:
       - devopsnetwork

 networks:
   devopsnetwork:
     external: true
 ```
Развертывание успешно

IP-адрес машины развертывания: 192.168.123.214.

Установить плагин: Плагин задержки сообщений

Примечание. Задержка публикации сообщения плагина поддерживается только в секундах, минутах или часах, вплоть до одного или двух дней, обратите внимание! ! ! Исходный текст: Этот плагин был разработан для задержки публикации сообщений на несколько секунд, минут или часов. День-два максимум.

! ! ! передний compose.yml По умолчанию — воля. /myplugins Подключен к контейнеру и укажите несколько каталогов плагинов. Система:/плагины Добавьте его самостоятельно:/myplugins , оптимизирован процесс, Установитьплагин не требует копировать файлы и перезапускает контейнер

  1. Сначала необходимо скачать плагин: Rabbitmq_delayed_message_exchange-3.12.0.ez, скачать соответствующую версию из 。ez документ:Github Releases
  2. Воля скачать файл исплагина на 。/myplugins папка Передний Воля myplugins Крепится к контейнеру
  3. соединятьконтейнер Включение выполненияплагин:docker exec -it rabbitmq_3_12 /bin/bash -c "rabbitmq-plugins enable rabbitmq_delayed_message_exchange"
  4. Потому что он установлен myplugins и установите его в каталог плагина найду сам /plugins и/myplugins Соответствующий ez документк Установить
  1. Активировано успешно, его можно просмотреть на странице Обмены.

Ямы, на которые наступили

  • В соответствии с приведенной выше конфигурацией следующие проблемы больше не возникнут. Если вы столкнулись с той же проблемой, см.
  • Сообщения с задержкой поддерживают только сообщения с задержкой до одного или двух дней. В проекте есть функция регулярной отправки сообщений. Если соответствующая настройка времени превышает порог, она не может быть использована. иллюстрировать
  • Не монтировать /плагины плагин Оглавление,доступныйRABBITMQ_PLUGINS_DIR: '/plugins:/myplugins'Приходитьобозначениенесколько Оглавление,Для этого требуется только выполнение документ
  • Не указан hostname Имя узла Назовите это встречейконтейнер Id
  • использовать Понятно rabbitmq:3.x-management зеркало (с web Страница управленияиз Функция)Но он был установлен пустымизплагин Оглавление Сообщим об ошибке:{"init terminating in do_boot",{undef,[{rabbit,boot,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
  • Admin На странице появляется сообщение об ошибке: Обновите версию. issues Я начал использовать его 3.9.29-management(tags Сортировка списка 3.9 впереди ( ╯□╰ )), сообщите об этой ошибке
  • Нужно пройти перед сменой версий. /data Очистить данные, иначе не запустится
  • Ошибка страницы обмена: я сменил версию на 3.12.6-management и сообщил об этой ошибке. Я не вышел из системы, мне просто нужно было нажать Ctrl+F5 и войти снова.

использовать

.NET SDK

чиновник:RabbitMQ.Client

Конфигурация подключения
Язык кода:javascript
копировать
var factory = new ConnectionFactory
{
    HostName = "192.168.123.214",
    Port = 5672,
    VirtualHost = "admin_vhost",
    UserName = "root",
    Password = "devops666",
};
Демонстрационный пример

построил demo тестиспользовать Демо-адрес , мы подробно расскажем, как инкапсулировать его позже, когда будем инкапсулировать его во второй раз.

Связанные документы

постскриптум

Установить по-прежнему относительно просто, выберите правильную версию, больше возможностей использования, вам нужно выбрать подходящее решение в соответствии с бизнесом. плагиниз Установить потратил некоторое время на исследование и оптимизацию этого процесса.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose