RabbitMq基础版应用

时间:2020-04-17
本文章向大家介绍RabbitMq基础版应用,主要包括RabbitMq基础版应用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一:Linux 环境安装

  1. 安装erlang

1 yum install ncurses-devel
2 tar xf otp_src_21.3.tar.gz
3 ./configure --prefix=/usr/local/erlang --without- javac
4 编译 : make
5 安装:make install
6 cd /usr/local/erlang/bin : ./erl
7 退出erlang的shell:exit 

  2.安装RabbitMq

 1 xz -d rabbitmq-server-generic-unix-3.8.3.tar.xz
 2 tar xf rabbitmq-server-generic-unix-3.8.3.tar
 3 安装依赖:yum install python -y
 4 yum install xmlto -y
 5 yum install python-simplejson -y
 6 mv rabbitmq_server-3.8.3 /usr/local/rabbitmq
 7 启动: cd /usr/local/rabbitmq/sbin : ./rabbitmaq-server
 8 netstat -nap|grep 5672
 9 查看进程:ps -ef | grep rabbit
10 关闭:./rabbitmqctl stop
11 
12 修改环境变量:vi /etc/profile
13 export PATH = $PATH:/usr/local/ruby/bin:/usr/local/erlang/bin:/usr/localrabbitmq/sbin
14 环境变量生效:source /etc/profile
15 启动: rabbitmq-server

二:简单代码,测试应用

  1.添加依赖:pom.xml

1 <!-- 11. rabbitmq  -->
2     <dependency>
3       <groupId>org.springframework.boot</groupId>
4       <artifactId>spring-boot-starter-amqp</artifactId>
5       <version>2.1.6.RELEASE</version>
6     </dependency>

  2.添加配置:application.properties

 1 # 6. rabbitmq 相关配置
 2 spring.rabbitmq.host=127.0.0.1
 3 spring.rabbitmq.port=5672
 4 spring.rabbitmq.username=guest
 5 spring.rabbitmq.password=guest
 6 spring.rabbitmq.virtual-host=/
 7 #\u6D88\u8D39\u8005\u6570\u91CF
 8 spring.rabbitmq.listener.simple.concurrency= 10
 9 spring.rabbitmq.listener.simple.max-concurrency= 10
10 #\u6D88\u8D39\u8005\u6BCF\u6B21\u4ECE\u961F\u5217\u83B7\u53D6\u7684\u6D88\u606F\u6570\u91CF
11 spring.rabbitmq.listener.simple.prefetch= 1
12 #\u6D88\u8D39\u8005\u81EA\u52A8\u542F\u52A8
13 spring.rabbitmq.listener.simple.auto-startup=true
14 #\u6D88\u8D39\u5931\u8D25\uFF0C\u81EA\u52A8\u91CD\u65B0\u5165\u961F
15 spring.rabbitmq.listener.simple.default-requeue-rejected= true
16 #\u542F\u7528\u53D1\u9001\u91CD\u8BD5
17 spring.rabbitmq.template.retry.enabled=true 
18 spring.rabbitmq.template.retry.initial-interval=1000 
19 spring.rabbitmq.template.retry.max-attempts=3
20 spring.rabbitmq.template.retry.max-interval=10000
21 spring.rabbitmq.template.retry.multiplier=1.0

  3.消息发送端

 1 @Service
 2 public class RabbitMqSender {
 3 
 4     private static Logger log = LoggerFactory.getLogger(RabbitMqSender.class);
 5 
 6     @Autowired
 7     private AmqpTemplate amqpTemplate;
 8 
 9     public void send(Object message){
10         String msg = CommonUtil.beanToString(message);
11         log.info("send message:"+msg);
12         amqpTemplate.convertAndSend(RabbitMqConfig.TEST_QUEUE, msg);
13     }
14 
15 }

  4.消息接收端

 1 @Service
 2 public class RabbitMqReceiver {
 3 
 4     private static Logger log = LoggerFactory.getLogger(RabbitMqReceiver.class);
 5 
 6     @RabbitListener(queues=RabbitMqConfig.TEST_QUEUE)
 7     public void receive(String message){
 8         log.info("receive message:"+message);
 9     }
10 
11 }

  5.配置类

 1 @Configuration
 2 public class RabbitMqConfig {
 3 
 4     public static final String TEST_QUEUE = "test_queue";
 5 
 6     /**
 7      * Direct模式 交换机Exchange
 8      * */
 9     @Bean
10     public Queue queue() {
11         return new Queue(TEST_QUEUE, true);
12     }
13 
14 }

  6.控制层,测试类

 1 @Controller
 2 @RequestMapping("/demo")
 3 public class SampleController {
 4 
 5     @Autowired
 6     private RabbitMqSender rabbitMqSender;
 7 
 8     @RequestMapping("/testRabbitMq")
 9     @ResponseBody
10     public Result<String> testRabbitMq(){
11 
12         String msg = "hello,This is test of RabbitMq." + new Date().toString();
13 
14         rabbitMqSender.send(msg);
15         return Result.success(msg);
16     }
17 }

原文地址:https://www.cnblogs.com/BenNiaoXianFei/p/12720994.html