Java教程

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

本文主要是介绍【九月打卡】第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")

))

https://img1.sycdn.imooc.com/632fbd1c0001d76f13330724.jpg

3、Spring Cloud Stream

https://img1.sycdn.imooc.com/632fbd3200013fdb13600729.jpg

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

https://img4.sycdn.imooc.com/632fbd4200014eeb13190733.jpg

(3)、接收端

https://img3.sycdn.imooc.com/632fbd690001198b12750688.jpg

这篇关于【九月打卡】第21天 SpringCloud微服务学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!