AMQP(Advanced Message Queuing Protocol)是用于在应用程序之间传递业务消息的开放标准。该协议与语言和平台无关,更符合微服务中独立性的要求。 RabbitMQ实现了AMQP协议。Spring AMQP是基于AMQP协议定义的一套API规范,提供了模板来发送和接收消息。包含两部分,其中spring-amqp是基础抽象,spring-rabbit是底层的默认实现。 Spring AMQP的依赖如下,其中包含了RabbitMQ的依赖: 1<!-- AMQP依赖,包含RabbitMQ --> 2<dependency> 3...

RabbitMQ官网:https://www.rabbitmq.com/。 官方文档:https://rabbitmq.com/documentation.html。 官方Demo:https://www.rabbitmq.com/getstarted.html。 部署 RabbitMQ 使用Docker来部署RabbitMQ只需要两个步骤: pull RabbitMQ镜像: 1docker pull rabbitmq:3-management RabbitMQ通过插件的方式提供了一个可视化界面。在RabbitMQ官方的镜像中,带management版本的就是集成了该可视化插件的镜像。 通过Docker官方的镜像源来pull...

微服务间通讯有两种方式: 同步通讯:实时响应。 异步通讯:不需要马上回复。 两种方式各有优劣,同步通讯可以立即得到响应,但是却不能跟多个服务同时通讯。异步通讯可以同时与多个服务通讯,但是往往响应会有所延迟。 同步通讯 Feign调用就属于同步方式,虽然调用可以实时得到结果,但存在下面的问题: 耦合度高:消费者与提供者之间存在直接的调用关系。在服务中每次加入新的需求,都要修改原来的代码。 性能下降:消费者需要等待提供者响应,如果调用链过长,响应时间等于每次调用的时间之和。 资源浪费:消费者在等待响应过程中,不能释放请求占用的资源,高并发场景下会极度浪费系统资源。 级联失败:如果提供者出现问题,所有消费者都会跟着出问题。如同多米话骨牌一...