手记

【九月打卡】第21天 SpringCloud微服务学习

课程名称:SpringCloud Finchley三版本微服务实战

课程章节:

第7章 消息和异步

主讲老师:廖师兄

课程内容:

SpringCloud rabbitMQ基本使用以及商品订单服务中异步使用扣库存

课程收获:

1、异步

客户端请求不会阻塞进程,服务端的响应可以是非即时的。

异步的常见形态:(1)、通知;(2)、请求/异步响应;(3)、借助消息

MQ应用场景:(1)、异步处理;(2)、流量削峰;(3)、日志处理;(4)、应用解耦。

2、rabbitMQ使用

(1)、引入依赖

<dependency>

     <groupId>org.springframework.boot</groupId>

     <artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

(2)、配置MQ

spring:

rabbitmq:

               host:localhost

               port:5672

               username:guest

               password:gust

(3)、接收方定义

定义接收方: 

在RabbitMq控制台创建队列,使用@RabbitListener(queues = "myQueue")监听队列

.使用注解@RabbitListener(queuesToDeclare = @Queue("myQueue"))创建并监听队列

(4)、发送

AmqpTemplate.convertAndSend

(5)、Exchange和Queue绑定

@RabbitListener(bindings = @QueueBinding(

value = @Queue("myQueue")

exchange = @Exchange("myExchange")

))

3、Spring Cloud Stream

Spring Cloud Stream也是Spring Cloud的组件之一,是为微服务构建消息驱动能力的框架,应用程序通过input、output来与Stream中的Binder来进行交互,Stream中的Binder则与中间件交互,Binder是一个抽象概念,是应用于消息中间件的联合剂。使用Stream最大的方便之处是对消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件,切换Topic。

局限:Stream当前支持的Binder只有两种,RabbitMQ和Kafka。

(1)、引入依赖

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>

</dependency>

(2)、分别定义@Input、@Output

(3)、接收端

0人推荐
随时随地看视频
慕课网APP