CentOS 搭建 RabbitMQ && Spring Boot 整合

RabbitMQ

安装Erlang

RabbitMQ 安装需要依赖 Erlang 环境

$ cd /opt
$ wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
$ yum install erlang-19.0.4-1.el7.centos.x86_64.rpm

安装 RabbitMQ

$ cd /opt
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
$ yum install rabbitmq-server-3.6.10-1.el7.noarch.rpm

启动服务

$ service rabbitmq-server start

服务状态

$ service rabbitmq-server status
# service rabbitmq-server status
Redirecting to /bin/systemctl status  rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-08-16 11:43:33 CST; 8s ago
 Main PID: 17919 (beam)
   Status: "Initialized"
   CGroup: /system.slice/rabbitmq-server.service
           ├─17919 /usr/lib64/erlang/erts-8.0.3/bin/beam -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /us...
           ├─18062 /usr/lib64/erlang/erts-8.0.3/bin/epmd -daemon
           ├─18160 erl_child_setup 1024
           ├─18165 inet_gethost 4
           └─18166 inet_gethost 4

Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc.
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##  ##
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##########  Logs: /var/log/rabbitmq/[email protected]
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ######  ##        /var/log/rabbitmq/[email protected]
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: ##########
Aug 16 11:43:32 localhost.localdomain rabbitmq-server[17919]: Starting broker...
Aug 16 11:43:33 localhost.localdomain rabbitmq-server[17919]: systemd unit for activation check: "rabbitmq-server.service"
Aug 16 11:43:33 localhost.localdomain systemd[1]: Started RabbitMQ broker.
Aug 16 11:43:33 localhost.localdomain rabbitmq-server[17919]: completed with 0 plugins.

查看日志

$ less /var/log/rabbitmq/rabbit@localhost.log
=INFO REPORT==== 16-Aug-2017::11:43:32 ===
Starting RabbitMQ 3.6.10 on Erlang 19.0.4
Copyright (C) 2007-2017 Pivotal Software, Inc.
Licensed under the MPL.  See http://www.rabbitmq.com/

=INFO REPORT==== 16-Aug-2017::11:43:32 ===
node           : rabbit@localhost
home dir       : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/rabbitmq.config (not found)
cookie hash    : kuUba2xGLitNNO48qE0Hrg==
log            : /var/log/rabbitmq/[email protected]
sasl log       : /var/log/rabbitmq/[email protected]
database dir   : /var/lib/rabbitmq/mnesia/rabbit@localhost

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Memory limit set to 390MB of 976MB total.

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Enabling free disk space monitoring

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Disk free limit set to 50MB

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Limiting to approx 924 file handles (829 sockets)

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
FHC read buffering:  OFF
FHC write buffering: ON

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Database directory at /var/lib/rabbitmq/mnesia/rabbit@localhost is empty. Initialising from scratch...

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Waiting for Mnesia tables for 30000 ms, 9 retries left

=INFO REPORT==== 16-Aug-2017::11:43:33 ===
Waiting for Mnesia tables for 30000 ms, 9 retries left

显示没有找到日志文件,创建一个;

$ cd /etc/rabbitmq/
$ vi rabbitmq.config

编辑内容

[{rabbit, [{loopback_users, []}]}].
  • 这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置

重启

$ service rabbitmq-server restart

开启管理UI

$ /sbin/rabbitmq-plugins enable rabbitmq_management

重启

访问

通过浏览器访问 http://ip:15672

创建新用户

$ rabbitmqctl add_user zhao 123456

用户授权

$ rabbitmqctl set_permissions -p "/" zhao".*" ".*" ".*"

添加角色

$ rabbitmqctl set_user_tags zhao administrator

查看权限

扫描二维码关注公众号,回复: 4422195 查看本文章
$ rabbitmqctl list_users

清除权限

rabbitmqctl  clear_permissions  -p /  zhao

注意

保证服务器 5672、15672 端口开放状态;


SpringBoot 与 RabbitMQ 整合

创建SpringBoot项目;
这里写图片描述

在pom文件中 添加对amqp依赖

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

application.properties文件中对rabbitmq配置:

spring.application.name=spirng-boot-rabbitmq-sender
spring.rabbitmq.host=(ip)
spring.rabbitmq.port=5672  (这里是5672,在浏览器UI登录时端口为15672)
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

用户名可以是上面新创建用户

采用Direct模式

配置Queue(消息队列)

@Configuration
public class SenderConf {
@Bean
public Queue queue() {
return new Queue(“queue”);
}
}

发送端

@Component
public class HelloSender {
    @Autowired
    private AmqpTemplate template;

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

controller 模拟发送


@Controller
@RequestMapping("/rabbit")
public class HelloController {
    @Autowired
    private HelloSender helloSender;

    @PostMapping("/sender")
    public void testRabbit() {
        helloSender.send();
    }

接受者

@Component
public class HelloReceive {

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

}

这里写图片描述

成功接收

猜你喜欢

转载自blog.csdn.net/naihe0420/article/details/82227378
今日推荐