springBoot+rabbitMq集成demo

一.为什么使用消息队列

1.解耦:多个系统同时需要某个系统提供数据,例如用户中心系统提供用户数据给多个系统,如果新增一个系统又需要用户中心系统提供数据,那么用户中心还得改代码重新打包,这样用户中心实际上和这一些相关的系统紧密耦合在一起了。如果用了MQ,发布订阅模式,那么用户中心系统只需要将用户数据往消息队列里面存放,其他的消费者自己去获取数据,这样就解耦了吧
2.异步:用户注册成功发送短信提示用户注册成功,首先用户注册得写注册信息到msql吧,然后再调用短信发送接口,短信发送成功响应,然后再告诉前台用户注册成功,万一短信注册有延迟,这下响应时间就比较长了,所以用户注册成功直接将用户手机号放在队列里面,然后直接给用户提示注册成功,至于短信,那就自己去队列里面获取手机号发送短信,这样是不是响应时间就短了。
3.削锋:大量得请求进来,服务无法响应,将请求得信息放队列里面慢慢响应,是不是很靠谱。至少不会保证服务器崩溃吧。

二.为什么使用rabbitMq

这市面上常见得MQ:activieMq rabbitMq rocketMq kafka 这四位大佬。actiiveMq 和rabbitMq得吞吐量不如rocketMq 和kafka 但是时效性呢,rabbitMq是最强得,毕竟是erlang写得,惹不起惹不起,kafka是大数据专用,惹不起惹不起,社区活跃度,activeMq 感觉社区活跃度真的不如剩下得三位大佬活跃,所以,activeMq出局(有时候真的感觉,社区活不活跃真的是很重要的),再说下剩下的三位大佬。rocketMq是阿里出品,别出精品。而且是java写的。所以在自己修改肯定是强于rabbitMq的,kafka大数据专用,感觉一般的项目没有必要用这么重的框架(有时候真的不是用最牛的技术就最牛逼还得结合场景,用的不好反而是自己给自己挖坑),这下就只剩rocketMq和rabbitMq了,这两个都挺不错,但是rabbitMq还专门提供了管理界面,还有windows版本,入手快,缺点,erlang开发,自己去改代码,那简直是找刺激,但是社区比较活跃,更新速度快,rocketMq说实在的真的比rabbitMq要强,但是最后为撒选rabbitMq呢,技术选型真的还是要看使用场景,如果中小型项目用rabbitMq足矣,并且还要丰富的管理界面便于上手,哎遍不下去了我菜

三.开始集成mq吧

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.mq.cn</groupId>
	<artifactId>mq</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>mq</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!--MQ-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-amqp</artifactId>
			<version>1.5.2.RELEASE</version>
		</dependency>

		<!--日志-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

		
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值