Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)

声明:本人是在windows10系统下搭建linux虚拟机环境,所有安装包都是通过手动下载,解压安装,在线安装谁爱搞谁搞

一、安装虚拟机环境,本人使用的是VMware( ubuntu ),下载版本好像没多大关系
本人使用的版本:VMware-workstation-full-14.1.1-7528167.exe

二、安装VMwareTools
之所以要安装VMwareTools是为了linux窗口能全屏显示以及操作系统之间自由拖拽文件,经过本人实验,安装完成后,窗口全屏显示是成功了,但是拖拽文件还是不行,因为需要把下载安装包复制到linux文件系统中,所以采用了共享文件夹的方式,安装VMwareTools这里不介绍了,觉得麻烦可以跳过,可以不用安装

三、修改ubuntu的源,方便快速下载相关依赖包
修改阿里源为Ubuntu 18.04默认的源

备份/etc/apt/sources.list
#备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak

在/etc/apt/sources.list文件前面添加如下条目
#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

建立共享文件夹
1、在windows磁盘下建立选择一个目录建立共享文件夹,如D://share
2、打开VMware,新建虚拟机,名称如rabbitmq_1
3、添加共享文件夹
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第1张图片

三、安装erlang环境,因为使用rabbitmq中间件依赖于erlang环境

官网下载相应版本的erlang压缩包 官方包下载地址
建议离线安装,本人下载使用的版本为 21.1
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第2张图片
3.1 将安装包下载后放置windows共享文件夹 D://share
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第3张图片
3.2 左侧列表选择rabbitmq_1,点击开启此虚拟机,输入登录密码进入linux后台,cmd进入命令窗口,cd /mnt/hgfs/share 可看到共享文件夹的安装包

注:如果mnt下没有hgfs目录,需要在mnt目录下手动创建hgfs目录,然后执行apt-get install open-vm-tools-dkms,安装软件,最后再执行挂载命令:vmhgfs-fuse .host:/ /mnt/hgfs

安装好vmware tools后在 /mnt/hgfs 里没有东西,是空白的!

解决办法:

安装open-vm-tools
sudo apt-get install open-vm-tools
然后一路按回车。
安装好后可以使用vmhgfs-fuse命令,比如在虚拟机里有个目录 ~/share,终端中切换到家目录,然后:
vmhgfs-fuse share
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第4张图片
3.3 进入home目录,新建erlang文件夹(名称随意),将erlang安装包拷贝到此文件夹,下面各命令请按顺序操作

cd /home/
mkdir erlang
cd /mnt/hgfs/share
cp esl-erlang_21.1-1_ubuntu_artful_amd64.deb  /home/erlang  (拷贝)
cd /home/erlang
dpkg -i esl-erlang_21.1-1_ubuntu_artful_amd64.deb   (安装)

一般一次性安装成功,输入erl打印如下信息表示安装成功
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第5张图片
四、下载rabbitMQ安装包,同样也是解压安装
官网下载对应版本的压缩包,这很重要,网上有erlang和rabbitmq版本对照表,[下载地址]
本人下载的版本为3.7.8

rabbitmq-server_3.7.8-1_all.deb (注意是deb文件)

4.1 同样,需要将rabbitmq压缩包放到windows磁盘下D://share,请按照如下命令操作

cd /home/
mkdir rabbitmq
cd /mnt/hgfs/share
cp rabbitmq-server_3.7.8-1_all.deb /home/rabbitmq  (拷贝)
cd /home/rabbitmq
sudo dpkg -i rabbitmq-server_3.7.8-1_all.deb 可能有依赖错误
sudo apt-get -f install 这条命令将自动安装需要的依赖包. 
再次执行命令sudo dpkg -i rabbitmq-server_3.7.8-1_all.deb 安装成功,默认启动
service rabbitmq-server  status    查看启动状态

Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第6张图片

服务常用命令

启动rabbit服务:service rabbitmq-server start
停止rabbit服务:service rabbitmq-server stop
后台启动:rabbitmq-server -detached
运行状态:rabbitmqctl status
用户管理

查看所有用户:rabbitmqctl list_users
添加用户:rabbitmqctl add_user username password
删除用户:rabbitmqctl delete_user username
修改密码:rabbitmqctl change_password username newpassword

4.2 启用 web端可视化操作界面,我们还需要配置Management Plugin插件

rabbitmq-plugins enable rabbitmq_management   # 启用插件
service rabbitmq-server restart    # 重启

此时,应该可以通过 http://localhost:15672 查看,使用默认账户guest/guest 登录。
Linux虚拟机快速搭建RabbitMQ(解压版)完整流程(简单明了、不亲测能写这么多)_第7张图片
4.3 添加管理员用户
如果要在windows环境下登录rabbitmq管理后台,需要新增一个用户,并分配管理员角色

rabbitmqctl add_user test  test  (添加一个test用户  密码也是test)
rabbitmqctl set_user_tags test  administrator (给用户test添加管理员角色)

五、Java使用amqp-client连接rabbitmq服务端
5.1 首先给rabbitmq使用的用户赋予访问权限,我创建的是test用户,给test用户赋予‘/’目录的访问权限就可以,执行如下命令:

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

这一点很重要,否则连接时会报访问权限异常

5.2 简单生产者、消费者java代码示例,比较简单,可供参考
生产者:

/**
 * 消息生成者
 * @author xuying
 *
 */
public class RabbitMqProducer {
	private  static final String QUEUE_NAME = "demo.queue";
	private  static final String EXCHANGE_NAME = "demo.exchange";
	
	public static void main(String[] args) throws Exception {
		//创建连接工厂
		ConnectionFactory factory = new ConnectionFactory();

		//设置rabbotMQ相关信息
		factory.setHost("192.168.16.129");
		factory.setUsername("test");
		factory.setPassword("test");
		factory.setPort(5672);
		Connection connect = factory.newConnection();
		Channel channel = connect.createChannel();
		
		channel.exchangeDeclare(EXCHANGE_NAME, "direct");
		channel.queueDeclare(QUEUE_NAME, false, false, false, null);
		channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "bind_key");
		
		channel.basicPublish(EXCHANGE_NAME, "bind_key", 
				MessageProperties.PERSISTENT_TEXT_PLAIN, "Hello world".getBytes());
		channel.close();
		connect.close();
	}
}

消费者:

/**
 * 消息消费者
 * @author xuying
 *
 */
public class RabbitMqClient {
	private  static final String QUEUE_NAME = "demo.queue";
	private  static final String EXCHANGE_NAME = "demo.exchange";
	public static void main(String[] args) throws Exception {
		//创建连接工厂
		ConnectionFactory factory = new ConnectionFactory();

		//设置rabbotMQ相关信息
		factory.setHost("192.168.16.129");
		factory.setUsername("test");
		factory.setPassword("test");
		factory.setPort(5672);
		Connection connect = factory.newConnection();
		final Channel channel = connect.createChannel();
		
		channel.basicConsume(QUEUE_NAME, new DefaultConsumer(channel){
			@Override
		    public void handleDelivery(String consumerTag,
                    Envelope envelope,
                    AMQP.BasicProperties properties,
                    byte[] body) throws IOException{
				System.out.println("接受消息:"+ new String(body));
				channel.basicAck(envelope.getDeliveryTag(), false);
			}
		});
		
		TimeUnit.SECONDS.sleep(1);
		channel.close();
		connect.close();
	}
}

5.3 windows下登录rabbitmq管理后台(用户名:test 密码:test)
windows下打开游览器输入一下网址(注:ip为虚拟机监听5672的ip)
http://192.168.16.129:15672 输入用户名、密码成功登录

六、总结
发现写这种鬼东西真费劲,不是一般的花时间,网上资料太零散,而且还云里雾里,我觉得上面的那种安装流程还是很靠谱的,至少版本不会出错,也不会出现各种在线安装的问题。好了,不说了,吃早餐去了,为了这东西搞得早上起不来,请了半天假,哎。。

你可能感兴趣的:(rabbitmq)