RabbitMQ detallada base de la cola de mensajes de entrada y de demostración

1 ¿Por qué utilizar RabbitMQ

base 1.1 RabbitMQ

AMQP, Es decir Advanced Message Queuing Protocol, Advanced Protocolo de mensajes de cola, es un protocolo de capa de aplicación estándar abierto para el diseño de middleware orientado a mensajes.
agente de Message entre los componentes se utiliza principalmente para 解耦el remitente, el mensaje no tiene que ser consciente de la presencia del mensaje de usuario, y viceversa.
AMQPLa característica principal es orientado a mensajes, colas, enrutamiento (incluyendo el punto y de publicación / suscripción), la fiabilidad y la seguridad.
RabbitMQEs una fuente abierta AMQPaplicación, con un lado del servidor Erlangidioma, es compatible con una gran variedad de clientes, tales como: Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMPy soporte AJAX. En un sistema distribuido para almacenar y reenviar mensajes, en términos de facilidad de uso, escalabilidad, alta disponibilidad, y al hacerlo así.

1.2 paso mutación síncrona

1.2.1 proceso uno por uno

A continuación se muestra, el proceso se transmite sucesivamente, a saber: una orden -> Orden de servicio -> mensajes de texto -> Email- cabello> hecho de empuje, por lo que una gran cantidad de tiempo
Aquí Insertar imagen Descripción

1.2.2 grupo de subprocesos

Como se muestra a continuación en orden abrir una agrupación de hebras de servicio, el hilo no esperar a los resultados de los otros hilos, puede ser convertido a asíncrono síncrono, pero no desacoplado
Aquí Insertar imagen Descripción

1.2.3 con el sistema MQ

Como se muestra a continuación, utilizando colas de mensajes, MQel sistema puede llegar a ser asíncrona a síncrona: cuando las órdenes de usuario, MQel sistema devuelve el ID de orden, no en el tubo de MQsistema, de hecho, MQel sistema va a interactuar con el sistema y no hay otros servicios afectados y el orden
Aquí Insertar imagen Descripción

1.3 Servicio desacoplado

El uso del servicio MQ también puede desacoplar entre ellos
Aquí Insertar imagen Descripción

1.4 Flujo de corte frontal

servicio de pico de Internet, si el enorme volumen de solicitudes enviadas al servicio de pico que podría permitir que el servidor de rodillas, esta vez con una cola de mensajes, recibir y procesar una gran demanda, ya que no se ocupa de solicitud de pico, por lo tanto, tenemos que vaciar en la servicio. Este tiempo se puede ajustar en la cola de mensajes dentro de un umbral, si se alcanza un determinado pedido, no enviar a la subida de los servicios, y se envía a los demás servicios
Aquí Insertar imagen Descripción

2 Message Queue Fundamentos

2.1 Proveedor

Noticias productor, se entrega el programa de mensajes.

2.2 Consumidor

noticias de los consumidores, es que el programa acepta mensajes.

paso 2.3 mensaje no se utiliza cuando la cola de mensajes

Aquí Insertar imagen Descripción

2.4 Mensaje de pasar la cola de mensajes

Aquí Insertar imagen Descripción

2.5 ¿Qué es una cola

Al igual que una cola de almacén de las mercancías del almacén o tienda, un punto de tránsito entre la producción de la fábrica de los bienes y los usuarios comprar bienes

2.6 Lo que se almacena en la cola

En rabbitMQel flujo de información desde la aplicación de Rabbitmqla cola, toda la información se puede almacenar sólo en una cola. Cola puede almacenar una gran cantidad de información, ya que es básicamente un búfer ilimitado, siempre que el equipo tiene suficiente espacio de almacenamiento.

2.7 Relaciones colas y aplicaciones

Una pluralidad de productores pueden enviar mensajes a la misma cola, la pluralidad de los mensajes puede ser sólo una cola mediante la recepción de los mismos datos de la

Caso 3 Introducción

perfil 3.1 RabbitMQ

3.1.1 coordenadas RabbitMQ

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

RabbitMQ 3.1.2 añadió la configuración relevante

# 给应用起一个名字
spring.applicatin.name=springcloud-mq
# RabbitMQ的安装地址
spring.rabbitmq.host=192.168.126.140
# RabbitMQ的访问端口,和页面的15672端口不一样
spring.rabbitmq.port=5672
# RabbitMQ的用户名
spring.rabbitmq.username=admin
# RabbitMQ的密码
spring.rabbitmq.password=123456

3.2 sección del Código

3.2.1 Creación de colas

@Configuration
public class QueueConfig {
	//@Bean 方法的名字是默认的id名字,因此不要使用get+方法名
	@Bean
	// 注意:Queue要使用:org.springframework.amqp.core.Queue
	public Queue createQueue() {
		return new Queue("test_mq");
	}
}

3.2.2 Creación de proveedor de mensajería

@Component
public class QueueSender {

	@Autowired
	private AmqpTemplate amqpTemplate;
	
	public void send (String msg) {
		//向消息队列发送消息
		//参数一: 队列的名称。
		//参数二: 消息
		this.amqpTemplate.convertAndSend("test_mq",msg);
	}
}

3.2.3 destinatario del mensaje

@Component
public class QueueReciver {
	//此处的注解用来检测某一个特定队列是否变化
	@RabbitListener(queues="test_mq")
	public void reciver(String msg) {
		System.out.println("=====================");
		System.out.println(msg);
		System.out.println("=====================");
	}
}

3.2.4 clase de prueba

@RunWith(SpringRunner.class)
@SpringBootTest(classes=AppAction.class)
public class QueueTest {
	@Autowired
	private QueueSender sender;
	/*
	* 测试消息队列
	*/
	@Test
	public void test(){
		this.sender.send("Hello RabbitMQ");
	}
}

3.3 Enlaces negaron error

3.3.1 Nombre de usuario Contraseña incorrecta

Error:
ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
Solución:

  • Bajo cuidadosamente comprobar la contraseña de la cuenta es correcta
  • Después de entrar a las siguientes Can access virtual hostsmodificaciones a/
    Aquí Insertar imagen Descripción

3.3.2 Centos problema nombre de host de la máquina virtual

3.3.2.1 Centos7 cambiar el nombre de host en dos lugares consistentes

Por Centos7Para modificar los restos de nombre de host, a continuación, utilizar hostnamectl
Aquí Insertar imagen Descripción
, así como en /etc/hostseste documento que cambiarlo
Aquí Insertar imagen Descripción

3.3.2.2 Centos6 cambiar el nombre de host en dos lugares consistentes

Modificar /etc/hostslos archivos de
Aquí Insertar imagen Descripción
allí /etc/sysconfig/networkel archivo siguiente
Aquí Insertar imagen Descripción

Publicados 334 artículos originales · ganado elogios 186 · vistas 310 000 +

Supongo que te gusta

Origin blog.csdn.net/u012060033/article/details/104220535
Recomendado
Clasificación