欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

@AutowiredAmqpTemplate rabbitmqTemplate;@GetMapping(/send

点击: 次  来源:宝鼎软件 时间:2018-08-24

原文出处: oKong

媒介

上节讲了缓存数据库redis的利用,在实际事情中,一般上在系统可能应用间通信可能举办异步通知(登录后发送短信可能邮件等)时,城市利用动静行罗列办办理此业务场景的解耦问题。这章节讲授下动静行列RabbitMQ的集成和简朴利用示例。

RabbitMQ先容

RabbitMQ是一个开源的AMQP实现,处事器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在漫衍式系统中存储滚动员静,在易用性、扩展性、高可用性等方面表示不俗。

关于AMQP(摘自互联网):

AMQP,即Advanced Message Queuing Protocol,高级动静行列协议,是应用层协议的一个开放尺度,昆山软件开发,为面向动静的中间件设计。动静中间件主要用于组件之间的解耦,动静的发送者无需知道动静利用者的存在,反之亦然。 AMQP的主要特征是面向动静、行列、路由(包罗点对点和宣布/订阅)、靠得住性、安详。

题外话:其实Redis也有提供行列成果。但我以为,redis照旧专门用在缓存方面吧。

SpringBoot集成RabbitMQ

0.老端正,昆山软件开发,插手pom依赖,这已经是Springboot的套路了。

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

1.application.properties设置插手rabbitmq相关设置。

RabbitAutoConfiguration类是其自动加载设置类。

# rabbitmq相关设置
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

2.关于设置,以上两步就完成了(Springboot真的太利便了,写代码都是愉悦的)。正常利用时,若作为一个消费者,我们会设置一个吸收行列,这里为了示例,直接以最小设置来演示下。

设置一个名为okong的行列 

@Configuration
public class RabbitConfig {
	
	/**
	 * 界说一个名为:oKong 的行列
	 * @return
	 */
	@Bean
	public Queue okongQueue() {
		return new Queue("okong");
	}
}

设置行列处理惩罚类,这里的行列就是上面设置的行列名称。:
Consumer.java

@Component
//@RabbitListener 监听 okong 行列
@RabbitListener(queues = "okong")
@Slf4j
public class Consumer {

	/**
	 * @RabbitHandler 指定动静的处理惩罚要领
	 * @param message
	 */
	@RabbitHandler
	public void process(String message) {
        log.info("吸收的动静为: {}", message);
    }
}

编写动静发送类,这里直接写成api要领,利便调试。
DemoController.java

/**
 * 简朴示例 发送和吸收行列动静
 * @author oKong
 *
 */
@RestController
public class DemoController {
	
	//AmqpTemplate接口界说了发送和吸收动静的根基操纵,今朝spring官方也只集成了Rabbitmq一个动静行列。。
	@Autowired
	AmqpTemplate rabbitmqTemplate;
	
	@GetMapping("/send")
	public String send(String msg) {
		//发送动静
		rabbitmqTemplate.convertAndSend("okong", msg);
		return "动静:" + msg + ",已发送";
	}
}

3.启动应用,正常设置乐成,在Rabbitmq的节制台,是可以瞥见毗连工具的。说明已经正常启动了。

@AutowiredAmqpTemplate rabbitmqTemplate;@GetMapping(/send<a href=劳务调派信息打点系统 )public String send(String msg) {//发送动静rabbitmqTemplate.convertAndSend(okong" src="/uploads/allimg/c180824/15350545411O30-15G0.jpg" />

4.会见:http://127.0.0.1:8080/send?msg=hello,rabbitmq, 在节制台就可以瞥见消费者已经消费到此条动静了:

2018-07-24 22:59:00.777  INFO 11424 --- [cTaskExecutor-1] c.l.l.springboot.chapter12.Consumer      : 吸收的动静为: hello,rabbitmq

节制台界面,在Queues标签页,也可以查察到行列okong的动静。

行列信息

总结

本章节主要是对RabbitMQ的集成和简朴利用举办了说明,对付高并发系统而言,动静行列是一个常见的办理方案了。好比实现异步动静的通知,昆山软件开发,实现消费者/出产者模式等。由于对rabbitmq没有过多的相识,具体的用法及相关动静行列的常识,可自行搜索相关资料下,这里就不叙述了。前段时间买了本关于RabbitMQ方面的书籍,等看完了,也但愿能单独写一篇关于动静行列的文章,敬请等候!

最后