RabbitMQ Linux平台安装

Rabbitmq是消息中间件,它是Erlang语言开发的,充分地利用erlang的分布式特性,通常以集群方式部署,主要提供消息的接受和发送,实现各微服务之间的消息异步。

1、安装依赖包

yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel xz 

2、下载并安装Erlang
可以从官网下载https://www.erlang.org/downloads

或者从云盘下载
链接:https://pan.baidu.com/s/1Z67e46ybpjjm6ry6BPkKrA
提取码:56bk

3、安装Erlang

tar -zxvf otp_src_23.0.tar.gz 
cd otp_src_23.0
 ./configure  --prefix=/usr/local/bin/erlang --without-javac
make && make install
echo "export PATH=$PATH:/usr/local/bin/erlang/bin:/usr/local/bin/rabbitmq_server-3.8.5/sbin" >> /etc/profile
source /etc/profile

4、安装Rabbitmq,Rabbitmq只有二进制Build
可以从官网下载https://www.rabbitmq.com/download.html
链接:https://pan.baidu.com/s/1tGLF-P-nPjFQQ-TvOiL-Aw
提取码:4dqz

xz -d rabbitmq-server-3.8.3.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.5.tar -C /usr/local/bin/
echo "export PATH=$PATH:/usr/local/bin/erlang/bin:/usr/local/bin/rabbitmq_server-3.8.5/sbin" >> /etc/profile
source /etc/profile

初始化rabbitmq的管理界面

rabbitmq-plugins enable rabbitmq_management

启动Rabbitmq

rabbitmq-server -detached

添加用户

rabbitmqctl add_user admin admin

添加用户权限

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

修改用户角色

rabbitmqctl set_user_tags admin administrator

关闭Linux防火墙

service iptables stop
chkconfig --level 345 iptables off

RabbitMQ Linux平台安装_第1张图片
搭建Rabbitmq集群待续

配置Rabbitmq Cluster
按照上述步骤准备两台Linux并安装好Rabbitmq环境,将其中一台Linux上的erlang cookie复制到另一台,erlang cookie的位置通常在$home/.erlang.cookie 或者/var/lib/rabbitmq/.erlang.cookie。

1、修改第一台Linux主机名
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=node1

2、修改/etc/hosts文件

[root@node1 ~]# vi /etc/hosts
127.0.0.1       node1


192.168.161.10  node1
192.168.161.20  node2

3、启动Rabbitmq


rabbitmq-server -detached

准备第二台机器
1、修改第二台Linux主机名
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=node2
~

2、修改/etc/hosts文件

127.0.0.1       node2
192.168.161.10  node1
192.168.162.20  node2

3、启动Rabbitmq

rabbitmq-server -detached
rabbitmqctl stop_app  
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app

检查这两台机器的控制台
RabbitMQ Linux平台安装_第2张图片
4、配置镜像队列策略
在其中一台Linux的Rabbitmq控制台上的Admin菜单中,点击Policies
RabbitMQ Linux平台安装_第3张图片
RabbitMQ Linux平台安装_第4张图片
创建队列策略。

在另外一台Linux的Rabbitmq控制台上也可以看到新建的队列策略
RabbitMQ Linux平台安装_第5张图片
测试集群
在其中一台Linux的Rabbitmq控制台上创建一队列并发布一条消息。
RabbitMQ Linux平台安装_第6张图片
在另一台Linux的Rabbitmq控制台上可以看到此队列和消息
RabbitMQ Linux平台安装_第7张图片

5、配置统一的Rabbitmq集群代理
可以使用Haproxy作为Rabbitmq集群代理,也可以选择其他工具
在其中一台Linux上安装Haproxy

yum -y install haproxy

修改配置文件

vi /etc/haproxy/haproxy.cfg

在配置文件最后添加

listen rabbitmq_cluster 192.168.161.10:5670
       mode      tcp 
       option  tcplog
       balance roundrobin 
       server rabbit1  192.168.161.10:5672 check inter 5000 rise 2 fall 2 
       server rabbit2  192.168.161.20:5672 check inter 5000 rise 2 fall 2

listen private_monitoring :8100 mode http option httplog stats enable stats uri /rabbitmqstats stats refresh 5s

客户端连接192.168.161.10:5670即可使用Rabbitmq集群

6、编写Java程序发送消息
使用SpringBoot框架,POM文件中引入

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

Java代码,连接Haproxy代理的服务端口,由Haproxy代理转发给Rabbitmq集群

package com.gf.erp.util;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class AmqpUtil {
	public static void main(String[] args) throws Exception
	{
		ConnectionFactory cf = new ConnectionFactory();
		cf.setUsername("admin");
		cf.setPassword("admin");
		cf.setVirtualHost("/");
		cf.setHost("192.168.161.10");
		cf.setPort(5670);
		Connection con = cf.newConnection();
		Channel channel = con.createChannel();
		byte[] data = "Hello Message".getBytes();
		channel.basicPublish("", "testque", null, data);
		channel.close();
		con.close();
	}
}

你可能感兴趣的:(RabbitMQ)