Я давно не писал Spring Boot. Я недавно писал Spring Cloud Bus. Поскольку контент будет иметь некоторую актуальность, я добавлю пост об интеграции AMQP.
Введение в Message Broker и AMQP
Брокер сообщений является архитектурной моделью для проверки сообщений, передачи и маршрутизации. Его цели дизайна в основном используются в следующих сценариях:
AMQP - это аббревиатура расширенного протокола очереди сообщений, протокола слоя приложений с открытым стандартом для промежуточного программного обеспечения. AMQP определяет эти функции:
Rabbitmq
RabbitMQ, который должен быть представлен в этой статье, представляет собой продукт промежуточного программного обеспечения, реализованный с помощью протокола AMQP. Он может поддерживать несколько операционных систем и множество языков программирования и может охватывать почти все основные технологические платформы на уровне предприятия.
Установить
На странице загрузки официального веб -сайта rabbitmq https://www.rabbitmq.com/download.html мы можем получить пакеты установки и инструкции для различных операционных систем. Здесь мы объясним несколько часто используемых платформ один за другим.
Ниже приведены описания версий сервера Erlang и Rabbitmq, которые мы используем:
Установка Windows
Установите Erland, получите пакет установки EXE через официальную страницу загрузки http://www.erlang.org/downloads, откройте его напрямую и завершите установку.
Установите Rabbitmq и получите пакет установки EXE через официальную страницу загрузки https://www.rabbitmq.com/download.html.
После того, как загрузка будет завершена, запустите установщик напрямую.
После завершения установки сервера RabbitMQ он автоматически зарегистрируется в качестве службы и начнет с конфигурации по умолчанию.
Установка Mac OS X
Использование инструмента Brew в Mac OS X может легко установить Server RabbitMQ, просто следуйте следующей команде:
Через приведенную выше команду, команда Server RabbitMQ будет установлена в/usr/local/sbin и не будет автоматически добавлена в переменные среды пользователя, поэтому нам необходимо добавить следующее контент в файл .bash_profile или .profile:
Путь = $ path:/usr/local/sbin
Таким образом, мы можем запустить сервер RabbitMQ через команду Rabbitmq-Server.
Установка Ubuntu
В Ubuntu мы можем использовать репозиторий APT для установки
Установить Erlang и выполнить: apt-get установить Erlang
Выполните следующую команду, чтобы добавить репозиторий APT в /etc/apt/sources.list.d
Echo 'deb http://www.rabbitmq.com/debian/ тестирование главного' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Обновите список пакетов репозитория APT и выполните команду Sudo APT-GET Update
Установите Rabbit Server и выполните команду Sudo Apt-Get установить Rabbitmq-Server
Управление кроликами
Мы можем управлять им непосредственно с помощью доступа к файлам конфигурации или с помощью веб -доступа. Ниже мы представим, как управлять через Интернет.
Выполните Rabbitmq-Plugins включить команду Rabbitmq_management, чтобы включить плагин веб-управления, чтобы мы могли управлять им через браузер.
> Rabbitmq-Plugins Включите Rabbitmq_management. Были включены следующие плагины: mochiweb vebmachine rabbitmq_web_dispatch amqp_client rabbitmq_management_agent rabbitmq_managementapply configururation@pc-201602152056 ... начал 6 плагинов.
Откройте браузер и посетите: http: // localhost: 15672/, и войдите в систему с гостем пользователя по умолчанию, а пароль также является гостем. Мы можем увидеть страницу управления на следующем рисунке:
Из рисунка мы можем увидеть некоторые основные концепции, упомянутые в предыдущей главе, такие как: соединения, каналы, обмены, очередь и т. Д. Читатели, которые используют его в первый раз, могут нажать на него, чтобы увидеть, какой контент они имеют, и познакомиться с сервером сервера RabbitMQ.
Нажмите на вкладку Admin, чтобы управлять пользователями здесь.
Интеграция весенней загрузки
Ниже у нас есть интуитивное чувство и понимание RabbitMQ, интегрируя RabbitMQ в приложение Spring Boot и реализуя простой пример отправки и получения сообщений.
Интеграция RabbitMQ в Spring Boot очень проста, потому что мы вводили стартовые POM ранее, и модуль AMQP может хорошо поддерживать RabbitMQ. Давайте подробно поговорим о процессе интеграции:
Создайте новый Spring Boot Project под названием «Rabbitmq-Hello».
В pom.xml вводятся следующие зависимости, где для поддержки Rabbitmq используется Spring-Boot-Starter-AMQP.
<parent> <groupid> org.springframework.boot </GroupId> <ArtifactId> Spring-Boot-Starter-parent </artifactid> <sersion> 1.3.7.Release </version> <venfativePath/> <!-Lookup Parent от Repository-> </parent> <DeyEndency> <Deplication> <groupD> org.springFrameFrameRishory. <artifactid> spring-boot-starter-amqp </artifactid> </depervice> <dependency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-test </artifactid>
Настройте подключение и пользовательскую информацию о Rabbitmq в Application.properties. Пользователи могут вернуться к вышеуказанному контенту установки и создавать пользователей на странице управления.
Spring.application.name = Rabbitmq-Hello
spring.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
Создать отправителя производителя сообщений. Интерфейс Amqptemplate определяет набор основных операций для протокола AMQP, введя экземпляр интерфейса Amqptemplate. В Spring Boot его конкретная реализация будет введена в соответствии с конфигурацией. В этом продюсере мы генерируем строку и отправляем ее в очередь под названием Hello.
@Componentpublic class Sender {@autowired private amqptemplate rabbittemplate; public void send () {string context = "hello" + new date (); System.out.println ("Sender:" + context); this.rabbittemplate.convertandsend ("hello", контекст); }} Создайте приемник потребительского ресивера. Аннотация @RabbitListener определяет прослушивание очереди Hello в этом классе и использует аннотацию @Rabbithandler, чтобы указать метод обработки для сообщения. Следовательно, потребитель осознает потребление очереди Hello, а операция потребления - это строковое содержание выходного сообщения.
@Component @rabbitlistener (queues = "hello") Public Class Receiver {@rabbithandler public void Process (String hello) {System.out.println ("Receiver:" + Hello); }} Создайте кролик Configuration Configuration Class, который используется для настройки расширенной информации, такой как очередь, коммутаторы и маршрутизация. Здесь мы сосредоточимся на том, чтобы начать работу и сначала определяем его с минимизацией конфигурации для завершения базового процесса производства и потребления.
@Configurationpublic class rabbitconfig {@bean public queue queueue () {return new queue ("hello"); }} Создайте основной класс приложений:
@Springbootapplicationpublic class helloapplication {public static void main (string [] args) {springapplication.run (helloapplication.class, args); }} Создайте модульный тестовый класс для вызова производства сообщений:
@Runwith (springjunit4classrunner.class) @springapplicationconfiguration (classes = helloapplication.class) открытый класс helloapplicationtests {@autowired частного отправителя; @Test public void hello () throws exception {sender.send (); }}После завершения написания программы попробуйте запустить его. Сначала убедитесь, что сервер Rabbitmq начался, а затем выполните следующие операции:
Запустите основной класс приложения из консоли, мы видим следующий контент, программа создает соединение для доступа к Springcloud в 127.0.0.1:5672.
Скопируйте код следующим образом: OsarccachingConnectionFactory: Создано новое соединение: SimpleConnection@29836D32 [delegate = amqp: //[email protected]: 5672/]
В то же время, через панель управления RabbitMQ, мы видим, что записи, содержащие текущее соединение в соединении и каналах.
Запустите класс для модульного тестирования, и мы можем увидеть следующий вывод в консоли, и сообщение отправляется в очередь Hello на сервере RabbitMQ.
Sender: Hello Sun 25 сентября 11:06:11 CST 2016
Переключитесь на консоль основного класса приложения, мы можем увидеть следующий вывод, потребитель выполняет программу прослушивателя очереди Hello и выводит информацию о полученном сообщении.
Приемник: Привет, Sun 25 сентября 11:06:11 CST 2016
Через приведенный выше пример мы представили модуль Spring-Boot-Starter-AMQP в приложении Spring Boot и просто настроили для завершения содержимого разработки производства и потребления сообщений RabbitMQ. Тем не менее, в реальных приложениях у нас все еще есть много контента, который не был продемонстрирован, поэтому мы не дадим здесь больше объяснений. Читатели могут самостоятельно проверить официальные учебники RabbitMQ, чтобы получить более полное понимание.
Полный пример: глава 5-2-1
Открытый исходный код Китай: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
GitHub: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.