微服务学习9——异步

所谓异步,指客户端的请求不会阻塞进程,服务端的响应可以是非即时的。像发邮件,发了就行,不需要对方马上响应,这种东东不论在前端还是后端,用的都很多。

 

异步的常见形态:

(1)通知;单向的

(2)请求/异步响应。

(3)消息

 

(1)、(2)被认为是比较常见的一对一请求,(3)可以实现一对多

 

MQ应用场景

(1)异步处理;短信、积分发送

(2)流量削峰;秒杀之类

(3)日志处理;kafka,大数据处理

(4)应用解耦。

 

MQ的基本使用:

//1,这种方式先要手动创建队列

// @RabbitListener(queues = "myQueue")

// 2,自动创建,

// @RabbitListener(queuesToDeclare = @Queue("myQueue"))

// 3,自动创建,Exchange和Queue绑定

@RabbitListener(bindings = @QueueBinding(

value = @Queue("myQueue"),

exchange = @Exchange("myExchange")

))

public void process(String message) {

log.info("MyReceiver: {}" , message);

}

 

调用:

@Test

public void send() {

amqpTemplate.convertAndSend("myQueue", "now " + new Date());

}

 

如果要绑定制定消息:

// 数码供应商服务,接受消息

@RabbitListener(bindings = @QueueBinding(

exchange = @Exchange("myOrder"),

key = "computer",

value = @Queue("computerOrder")

))

public void processComputer(String message) {

log.info("computer MyReceiver: {}" , message);

}

 

调用:

@Test

public void sendOrder() {

amqpTemplate.convertAndSend("myOrder","computer", "now " + new Date());

}

你可能感兴趣的:(spring,cloud,微服务,spring,cloud,微服务)