阿里云ECS部署RabbitMQ+Springboot简单项目

首先部署阿里云和在windows差不多的,要部署windows可以查看我的上一篇博文:
这里: https://blog.csdn.net/Fekerkk/article/details/108132513.

首先我创建了这样一条路径的文件夹usr/loacl/rabbitMQ
第一步要下载erlang

yum install -y erlang

下载好后在命令行输入

erl

有反应则说明下载好了(你懂的)
接下来是下载安装安装RabbitMQ
我在usr/loacl/rabbitMQ文件夹下下载

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz

然后解压

xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz
tar xvf rabbitmq-server-generic-unix-3.6.15.tar

接下来配置环境变量

vi /etc/profile
在文件末尾添加,注意这里改成自己的路径
export PATH=$PATH:/usr/local/rabbitMQ/rabbitmq_server-3.6.15/sbin
然后保存文件
使文件生效
source /etc/profile

接下来进入rabbitmq_server-3.6.15/sbin文件夹内

启动RabbitMQ 服务
service rabbitmq-server start
停止RabbitMQ 服务
service rabbitmq-server stop
查看RabbitMQ 服务状态
service rabbitmq-server status

首先我们启动服务,然后查看一下用户列表

rabbitmqctl list_users

可以看到只有guest用户,这是默认用户,用户名和密码都是guest
接着我们添加一个自己的用户

rabbitmqctl add_user 用户名 密码

再查看一下用户列表,发现我们创建的用户和guest用户的权限不一样
那我们赋予用户角色

rabbitmqctl set_user_tags 用户名 administrator

这是赋予了最高权限的角色,再执行一条赋权限语句

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

接下来是很重要的一步,开启阿里云服务器端口,我们要开启俩个端口

15672
5672

然后再你的浏览器输入

服务器IP地址:15672

这样可以看到rabbitMQ的管理端界面了,用户名和密码就是你刚才创建的用户
接着是Springboot简单demo的实现
首先创建2个项目rabbitmq-sender和rabbitmq-receiver
先创建rabbitmq-sender
在这里插入图片描述
pom.xml需要的依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- 添加springboot对amqp的支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </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>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

SenderConf

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @创建人 FengKe
 * @创建时间 2020/8/20 19:36
 * @描述
 */
@Configuration
public class SenderConf {
    @Bean
    public Queue queue() {
        return new Queue("messagequeue");
    }
}

TestSend

import com.feker.rabbitmq.sender.service.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.ResponseBody;

/**
 * @创建人 FengKe
 * @创建时间 2020/8/20 20:02
 * @描述
 */
@Controller
public class TestSend {

    @Autowired
    private HelloSender helloSender;
    @ResponseBody
    @GetMapping("/testqueue")
    public void testRabbit() {
       helloSender.send();
    }
}

HelloSender

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

/**
 * @创建人 FengKe
 * @创建时间 2020/8/20 19:39
 * @描述
 */
@Component
public class HelloSender {
    @Autowired
    private AmqpTemplate template;

    public void send() {
        template.convertAndSend("messagequeue","hello,rabbit~");
    }
}

application.properties

server.port=8093
spring.application.name=spirng-boot-rabbitmq-sender
spring.rabbitmq.host=服务器公网IP地址
spring.rabbitmq.port=5672
spring.rabbitmq.username=用户名
spring.rabbitmq.password=密码

接下来是rabbitmq-receiver
在这里插入图片描述
pom.xml和上一个一样
HelloReceive

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

/**
 * @创建人 FengKe
 * @创建时间 2020/8/20 19:44
 * @描述
 */
@Component
public class HelloReceive {

    @RabbitListener(queues="messagequeue")    //监听器监听指定的Queue
    public void processC(String str) {
        System.out.println("Receive:"+str);
    }

}

application.properties

server.port=8094
spring.application.name=spirng-boot-rabbitmq-receiver
spring.rabbitmq.host=服务器公网IP地址
spring.rabbitmq.port=5672
spring.rabbitmq.username=用户名
spring.rabbitmq.password=密码

好了,项目我们已经创建完成了
接着,我们在

服务器IP地址:15672

这里修改点东西
在这个界面,我们添加一条名为messagequeue的queue就好了
在这里插入图片描述
然后回到我们的项目,先启动生产者,再启动消费者
然后在浏览器输入

127.0.0.1:8093/testqueue

访问后去接收者的控制台就可以看到消息发送过来了
!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值