RabbitMQ集成springboot最详细教程,并在ubuntu中的安装与使用

//某个服务的具体情况
	ps -ef | grep XXX 
//杀死进程
	kill -9 进程ID,第一个
//查看内存
	free或者top
//查看磁盘使用情况
	df -l
//寻找文件
	find -name  xxx
//查看端口使用情况	
	 netstat -an | grep 15672

文章目录

一、 RabbitMQ安装:

1.1更新

sudo agt-get update

1.2安装erlang环境

yum install erlang

1.3安装rabbitMQ环境

sudo apt-get install rabbitmq-server

1.4 启用RabbitMQWeb管理插件

不启用你的http://ip+15672访问不到

rabbitmq-plugins enable rabbitmq_management

1.5 常用命令

启动、停止、重启、状态rabbitMq命令:

启动:sudo rabbitmq-server start
关闭: sudo rabbitmq-server stop
重启: sudo rabbitmq-server restart
查看状态:sudo rabbitmqctl status

1.6查看启动状态

root@yan:/# service rabbitmq-server status
● rabbitmq-server.service - RabbitMQ Messaging Server
   Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-11-08 20:15:25 CST; 7min ago
  Process: 16987 ExecStop=/usr/sbin/rabbitmqctl stop (code=exited, status=0/SUCCESS)
  Process: 17074 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait (code=exited, status=0/SUCCESS)
 Main PID: 17073 (rabbitmq-server)
    Tasks: 70
   Memory: 39.6M
      CPU: 1.538s
   CGroup: /system.slice/rabbitmq-server.service
           ├─17073 /bin/sh /usr/sbin/rabbitmq-server
           ├─17084 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server
           ├─17171 /usr/lib/erlang/erts-7.3/bin/epmd -daemon
           ├─17211 /usr/lib/erlang/erts-7.3/bin/beam -W w -A 64 -P 1048576 -K true -B i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/ra
           ├─17312 inet_gethost 4
           └─17313 inet_gethost 4

Nov 08 20:15:23 yan systemd[1]: Stopped RabbitMQ Messaging Server.
Nov 08 20:15:23 yan systemd[1]: Starting RabbitMQ Messaging Server...
Nov 08 20:15:23 yan rabbitmq[17074]: Waiting for rabbit@yan ...
Nov 08 20:15:23 yan rabbitmq[17074]: pid is 17084 ...
Nov 08 20:15:25 yan systemd[1]: Started RabbitMQ Messaging Server.
lines 1-22/22 (END)

1.7添加用户

添加admin用户,密码设置为admin。

sudo rabbitmqctl add_user  admin  admin

赋予权限

sudo rabbitmqctl set_user_tags admin administrator 

赋予virtual host中所有资源的配置、写、读权限以便管理其中的资源

sudo rabbitmqctl  set_permissions -p / admin '.*' '.*' '.*'

1.8访问:

在这里插入图片描述



二、 spring boot整合rabbitMQ

2.1 配置pom包,主要是添加spring-boot-starter-amqp的支持

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

2.2配置文件

配置rabbitmq的安装地址、端口以及账户信息

  1. 一定不要把端口号设置成15672,因为那个已经被占用了,所以你新设置一个5672

  2. 同时添加到阿里云服务器安全组配置

spring.application.name=Spring-boot-rabbitmq
spring.rabbitmq.host=101.200.55.12
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=你的密码

2.3重启,并打开http://ip+15672就能看到一个连接信息了

如图有一个admin连接上了
在这里插入图片描述

三、springboot实现消费者和生产者模式

新建如下几个文件

3.1 单个主题(hello)队列配置

//队列配置

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitConfig {
   

    @Bean
    public Queue Queue() {
   
        return new Queue("hello");
    }
}

3.2 单个主题(hello)生产者

//  发送者
//  rabbitTemplate是springboot 提供的默认实现

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class HelloSender {
   

    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
   
        String context = "这是发送的信息 "+"---------------------" + new Date();
        System.out.println("=============================");
        System.out.println("Sender : " + context);
        System.out.println("=============================");
        this.rabbitTemplate.convertAndSend("hello", context);
    }
}

3.3 单个主题(hello)消费者

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@RabbitListener(queues = "hello")
public class HelloReceiver {
   

    @RabbitHandler
    public void process(String hello) {
   
        System.out.println("------------------1--------------------");
        System.out.println("Receiver  : " + hello);
        System.out.println("-----------------1---------------------");
    }
}

3.4 单个主题(hello)controller测试

// 新建一个controller测试

import cn.nxcoder.blog.rabbit.HelloSender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class RabbitController {
   

    @Autowired
    private HelloSender helloSender;

	/*
        一个生产者和一个消费者
     */
    @GetMapping("/rabbitHello")
    @ResponseBody
    public void hello(   ) {
   
        helloSender.send();
    }
}
//用postman本地测试
http://localhost:8088/rabbitHello
//测试结果


=============================
Sender : 这是发送的信息 ---------------------Fri Nov 09 15:09:01 CST 2018
=============================
15:09:01.188 [http-nio-8088-exec-1] INFO  c.n.blog.handler.LogAspectHandler - ======执行方法后,执行该方法======
15:09:01.188 [http-nio-8088-exec-1] INFO  c.n.blog.handler.LogAspectHandler - Result:null
------------------1--------------------
Receiver  : 这是发送的信息 ---------------------Fri Nov 09 15:09:01 CST 2018
-----------------1---------------------


以上最简单的单个生产者与消费者的MQ完成了


四、 一个生产者,多个消费者的情况

4.1 配置生产者方法

在我门的生产者里面新家一个sendMsg方法,该方法需要传参

看下面的,hello不能变,或者说是必须和你的消费者引用的名称要一样,这里我就没有改

this.rabbitTemplate.convertAndSend("hello", sendMsg);
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
public class HelloSender {
   

    @Autowired
    private AmqpTemplate rabbitTemplate;

    public void send() {
   
        String context = "这是发送的信息 "+"---------------------" 
        + new Date();
        System
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot集成RabbitMQ可以通过以下步骤完成: 1. 添加Maven依赖:在pom.xml文件添加RabbitMQ的Spring Boot Starter依赖。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> ``` 2. 配置RabbitMQ连接信息:在application.properties(或application.yml)文件配置RabbitMQ的连接信息。 ```properties spring.rabbitmq.host=your_rabbitmq_host spring.rabbitmq.port=your_rabbitmq_port spring.rabbitmq.username=your_rabbitmq_username spring.rabbitmq.password=your_rabbitmq_password ``` 3. 创建RabbitMQ发送者:创建一个发送消息的类,使用`RabbitTemplate`发送消息到指定的交换机和队列。 ```java import org.springframework.amqp.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class RabbitMQSender { @Autowired private RabbitTemplate rabbitTemplate; public void sendMessage(String exchange, String routingKey, Object message) { rabbitTemplate.convertAndSend(exchange, routingKey, message); } } ``` 4. 创建RabbitMQ接收者:创建一个接收消息的类,使用`@RabbitListener`注解监听指定的队列,处理接收到的消息。 ```java import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; @Component public class RabbitMQReceiver { @RabbitListener(queues = "your_queue_name") public void receiveMessage(Object message) { // 处理接收到的消息 System.out.println("Received message: " + message.toString()); } } ``` 5. 发送和接收消息:在需要发送或接收消息的地方调用对应的方法。 ```java @Autowired private RabbitMQSender rabbitMQSender; public void sendMessage() { rabbitMQSender.sendMessage("your_exchange_name", "your_routing_key", "Hello, RabbitMQ!"); } ``` 以上是基本的使用方式,你可以根据实际需求进行扩展和配置。注意,你还需要安装并启动RabbitMQ服务。 希望对你有所帮助!如果有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值