2
Spring异步发送通知,这里面涉及两种:
1.异步去执行一个功能,如:发送短信,发送邮件,下单信息变更,支付信息变更等
2.发送消息通知,使用消息中间件:
ActiveMQ,完全支持JMS和J2EE,支持多语言和多协议
RabbitMQ,是一个开源的AMQP实现,用于在分布式系统中存储转发消息。扩展性、易用性、高可用性等方面表现不俗。支持多客户端多语言,是AMQP的完整实现,
Kafka(主要是日志服务), 一种高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务,它通过一种独一无二的设计提供了一个消息系统的功能。
异步去执行一个功能 :Spring Boot 之异步调用Async/** 异步 */
@Async
public void asyncEvent() throws InterruptedException{
Thread.sleep(5000);//数据验证
Thread.sleep(6000);//保存数据
Thread.sleep(7000);//发送邮件
logger.info(\"异步方法执行完了\");
}
1.异步调用很简单,只需要在方法上面加入注解:@Async
2.Spring Boot启动类通过 @EnableAsync注解开启异步。
发送消息通知,使用消息中间件
1.引入依赖:
org.springframework.boot
spring-boot-starter-amqp
2.配置文件:spring:
application:
name: Spring-boot-rabbitmq
rabbitmq:
host: 39.105.167.131
port: 5762
username: guest
password: guest
3.定义队列@Configuration
public class RabbitConfig {
@Bean
public Queue Queue() {
return new Queue(\"hello\");
}
}
4.发送者
5.接受者
6.测试
注意,发送者和接收者的 queue name 必须一致,不然不能接收。
执行测试方法,就可以发送消息了.
我们上面只是简单地做了一对一测试,还有一对多,发布与订阅,路由模式,主题模式
以上只是抛砖引玉,介绍基本流程,详细开发流程,欢迎留言交流。