No he escrito Boot Spring por mucho tiempo. Estaba escribiendo el autobús de la nube de primavera recientemente. Debido a que el contenido tendrá cierta relevancia, agregaré una publicación sobre la integración de AMQP.
Introducción al corredor de mensajes y AMQP
Message Broker es un modelo arquitectónico para la verificación de mensajes, la transmisión y el enrutamiento. Sus objetivos de diseño se utilizan principalmente en los siguientes escenarios:
AMQP es la abreviatura del protocolo avanzado de colas de mensajes, un protocolo de capa de aplicación estándar abierto para el middleware de mensajes. AMQP define estas características:
Conejo
El conejo que se introducirá en este artículo es un producto de middleware implementado con el protocolo AMQP. Puede admitir múltiples sistemas operativos y múltiples lenguajes de programación, y puede cubrir casi todas las plataformas de tecnología de nivel empresarial convencional.
Instalar
En la página de descarga del sitio web oficial de RabbitMQ https://www.rabbitmq.com/download.html, podemos obtener paquetes e instrucciones de instalación para varios sistemas operativos. Aquí, explicaremos varias plataformas comúnmente utilizadas una por una.
Las siguientes son las descripciones de versión del servidor Erlang y RabbitMQ que utilizamos:
Instalación de Windows
Instale Erland, obtenga el paquete de instalación EXE a través de la página de descarga oficial http://www.erlang.org/downloads, ábralo directamente y complete la instalación.
Instale RabbitMQ y obtenga el paquete de instalación EXE a través de la página de descarga oficial https://www.rabbitmq.com/download.html.
Después de completar la descarga, ejecute el instalador directamente.
Después de completar la instalación del servidor RabbitMQ, se registrará automáticamente como un servicio y comenzará con la configuración predeterminada.
Instalación de Mac OS X
Uso de la herramienta Brew en Mac OS X puede instalar fácilmente el servidor RabbitMQ, simplemente siga el siguiente comando:
A través del comando anterior, el comando RabbitMQ Server se instalará en/usr/local/sbin y no se agregará automáticamente a las variables de entorno del usuario, por lo que debemos agregar el siguiente contenido al archivo .bash_profile o .profile:
Ruta = $ ruta:/usr/local/sbin
De esta manera, podemos iniciar el servidor RabbitMQ a través del comando RabbitMQ-server.
Instalación de Ubuntu
En Ubuntu, podemos usar el repositorio de apt para instalar
Instale Erlang y ejecute: APT-Get Instale Erlang
Ejecute el siguiente comando para agregar un repositorio apt a /etc/apt/sources.list.d
echo 'Deb http://www.rabbitmq.com/debian/ prueba principal' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Actualice la lista de paquetes del repositorio apt y ejecute el comando de actualización de sudo apt-get
Instale el servidor de Rabbit y ejecute el comando de rabbitmq-server instalar sudo apt-get
Gestión de conejos
Podemos administrarlo directamente a través del acceso al archivo de configuración o a través del acceso web. A continuación presentaremos cómo administrar a través de la web.
Ejecute el comando RabbitMQ-Plugins Habilitar el comando RabbitMQ_Management para habilitar el complemento de administración web para que podamos administrarlo a través del navegador.
> rabbitmq-plugins habilita rabbitmq_management Los siguientes complementos han sido habilitados: Mochiweb WebMachine RabbitMQ_Web_Dispatch AMQP_Client RabbitMQ_Management_Agent RabbitMQ_ManagementApply Configuración del complemento a Rabbit@PC-201602152056 ... iniciado 6 Plugins.
Abra el navegador y visite: http: // localhost: 15672/, e inicie sesión con el invitado del usuario predeterminado, y la contraseña también es invitada. Podemos ver la página de gestión en la siguiente figura:
De la figura, podemos ver algunos conceptos básicos mencionados en el capítulo anterior, como: conexiones, canales, intercambios, cola, etc. Los lectores que lo usan por primera vez pueden hacer clic en él para ver qué contenido tienen y familiarizarse con el lado del servidor del servidor RabbitMQ.
Haga clic en la pestaña Administrador para administrar los usuarios aquí.
Integración de arranque de primavera
A continuación, tenemos un sentimiento intuitivo y una comprensión de RabbitMQ integrando RabbitMQ en la aplicación de arranque de primavera e implementando un ejemplo simple de envío y recibo de mensajes.
La integración de RabbitMQ en el arranque de primavera es muy fácil, ya que hemos introducido POM de inicio antes, y el módulo AMQP puede admitir bien RabbitMQ. Hablemos sobre el proceso de integración en detalle:
Cree un nuevo proyecto de arranque de primavera, llamado "Rabbitmq-Hello".
En pom.xml, se introducen las siguientes dependencias, donde se utiliza el spring-boot-starter-amp para admitir conejo.
<Parent> <MoupRoD> org.springframework.boot </groupid> <artifactID> spring-boot-starter-parent </arfactid> <versers> 1.3.7.release </ververion> <relativePath/> <! Buscar padres de repository-> </parent> <dependencias> <dependency> <MoupRid> org.spRingFrameWork.prowork.BoT. <artifactid> spring-boot starter-amqp </artifactid> </pendency> <pendency> <uproupid> org.springframework.boot </groupid> <artifactid> spring-boot starter-test </artifactid> <cope> test </pope> </dependency> </pendences>
Configure la conexión e información del usuario sobre RabbitMQ en Application.Properties. Los usuarios pueden volver al contenido de instalación anterior y crear usuarios en la página de administración.
Spring.Application.Name = RabbitMq-Hello
spring.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
Crear remitente del productor de mensajes. La interfaz AMQPTemplate define un conjunto de operaciones básicas para el protocolo AMQP inyectando una instancia de la interfaz AMQPTemplate. En Spring Boot, su implementación específica se inyectará de acuerdo con la configuración. En este productor, generamos una cadena y la enviamos a una cola llamada Hello.
@ComponentPublic Class Senderer {@aUtowired private amqptemplate rabbittemplate; public void send () {String context = "Hello" + New Date (); System.out.println ("remitente:" + contexto); this.rabbittemplate.convertandSend ("hola", contexto); }} Crea un receptor del consumidor de mensajes. La anotación @RabBitListener define la escucha de la cola de hola de esta clase y usa la anotación @RabBithandler para especificar el método de procesamiento para el mensaje. Por lo tanto, el consumidor realiza el consumo de la cola Hello, y la operación de consumo es el contenido de cadena del mensaje de salida.
@Componente @rabbitListener (queues = "hola") receptor de clase pública {@rabbithandler público void proceso (string hello) {system.out.println ("receptor:" + hello); }} Cree la clase de configuración de RabbitMQ RabbitCig, que se utiliza para configurar información avanzada como colas, conmutadores y enrutamiento. Aquí nos enfocamos en comenzar y primero definirlo con una configuración de minimización para completar un proceso básico de producción y consumo.
@ConfigurationPublic Class RabbitConfig {@Bean Public Queue Helloqueue () {return New Queue ("Hello"); }} Crea la clase de aplicación principal:
@SpringBootApplicationPublic Class HelloApplication {public static void main (string [] args) {springApplication.run (helloApplication.class, args); }} Cree una clase de prueba unitaria para llamar a la producción de mensajes:
@RunWith (SpringJunit4ClassRunner.class) @SpringApplicationConfiguration (classes = HelloApplication.Class) clase pública HelloApplicationTests {@aUtowired Sender privado remitente; @Test public void hello () lanza la excepción {Sender.send (); }}Después de completar la redacción del programa, intente ejecutarlo. Primero asegúrese de que el servidor RabbitMQ haya comenzado y luego realice las siguientes operaciones:
Inicie la clase principal de la aplicación, desde la consola, vemos el siguiente contenido, el programa crea una conexión para acceder a SpringCloud en 127.0.0.1:5672.
Copie el código de la siguiente manera: OsarccachingConnectionFactory: creó una nueva conexión: SimpleConnection@29836d32 [delegate = amqp: //[email protected]: 5672/]
Al mismo tiempo, a través del panel de control de RabbitMQ, podemos ver que las entradas que contienen la conexión actual en conexión y canales.
Ejecute la clase de prueba unitaria y podemos ver la siguiente salida en la consola, y el mensaje se envía a la cola Hello del servidor RabbitMQ.
Remitente: hola sol 25 de septiembre 11:06:11 CST 2016
Cambie a la consola de la clase principal de la aplicación, podemos ver la siguiente salida, el consumidor ejecuta el programa del oyente de la cola de hola y emite la información del mensaje recibido.
Receptor: hola sol 25 de septiembre 11:06:11 CST 2016
A través del ejemplo anterior, introdujimos el módulo Spring-Boot-Starter-AMQP en la aplicación de arranque de primavera, y simplemente configurados para completar el contenido de desarrollo de la producción y el consumo de mensajes de RabbitMQ. Sin embargo, en aplicaciones reales, todavía tenemos mucho contenido que no se ha demostrado, por lo que no daremos más explicaciones aquí. Los lectores pueden consultar los tutoriales oficiales de RabbitMQ por su cuenta para obtener una comprensión más integral.
Ejemplo completo: Capítulo 5-2-1
China de código abierto: http://git.oschina.net/diidispace/springboot-lelarning/tree/master/chapter5-2-1
Github: https://github.com/dyc87112/springboot-lelarning/tree/master/chapter5-2-1
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.