RabbitMQ安装配置以及java的连接配置demo
来源:互联网 发布:ubuntu查看防火墙状态 编辑:程序博客网 时间:2024/05/29 17:34
一、在linux环境下安装
1、安装Erlang环境(RabbitMQ需要Erlang环境支持)
cd /usr/local/src/
mkdir rabbitmq
cd rabbitmq
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
sudo yum install erlang
依次输入上述命令,安装Erlang环境
2、安装RabbitMq
下载:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1-1.noarch.rpm
安装: rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm
3、RabbitMQ服务的启动
service rabbitmq-server start
4、设置开机自启动
chkconfig rabbitmq-server on
5、配置配置文件
cd /etc/rabbitmq
cp/usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mvrabbitmq.config.example rabbitmq.config
6、开启用户远程访问
vi /etc/rabbitmq/rabbitmq.config
注意要去掉后面的逗号。
7、开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart
8、在防火墙开启端口(15672和5672)
9、在浏览器输入ip:15672就可以访问web管理界面
备注:默认有guest用户,但是guest用户只能在localhost下能使用,远程访问需新建用户
1、新建用户:rabbitmqctl add_user username password
2、赋予用户角色标签:rabbitmqctl set_user_tags username administrator
然后在浏览器打开web管理界面就可以用该用户名和密码登录,
登录后点击上方的 admin ,点击下方列表中新建的用户名,在打开的页面中点击 setpermissions 按钮,给角色赋予权限,
至此,所有的配置结束
二、java连接配置demo
1、引入java包依赖
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.0.4</version></dependency><dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version></dependency>
编写类文件:
抽象类EndPoint:
package com.RabbitMQ;import java.io.IOException;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;public abstract class EndPoint{ protected Channel channel; protected Connection connection; protected String endPointName; public EndPoint(String endPointName) throws IOException{ this.endPointName = endPointName; //创建连接工厂 ConnectionFactory factory = new ConnectionFactory(); //设置host factory.setHost("192.168.10.43"); factory.setPort(5672); factory.setUsername("xjiuge"); factory.setPassword("123456"); factory.setVirtualHost("/"); factory.setConnectionTimeout(15000); //获得连接 connection = factory.newConnection(); //创建通道 channel = connection.createChannel(); //为这个通道申明一个队列,如果这个队列不存在,他将在服务器上创建 channel.queueDeclare(endPointName, false, false, false, null); } /** * 关闭channel和connection * @throws IOException */ public void close() throws IOException{ this.channel.close(); this.connection.close(); }}
生产者类:
package com.RabbitMQ;import java.io.IOException;import java.io.Serializable;import org.apache.commons.lang.SerializationUtils;public class Producer extends EndPoint { public Producer(String endPointName) throws IOException { super(endPointName); } public void sendMessage(Serializable obj) throws IOException{ channel.basicPublish("", endPointName, null, SerializationUtils.serialize(obj)); }}
消费者类:
package com.RabbitMQ;import java.io.IOException;import java.util.HashMap;import java.util.Map;import org.apache.commons.lang.SerializationUtils;import com.rabbitmq.client.AMQP.BasicProperties;import com.rabbitmq.client.Consumer;import com.rabbitmq.client.Envelope;import com.rabbitmq.client.ShutdownSignalException;public class QueneConsemer extends EndPoint implements Runnable, Consumer { public QueneConsemer(String endPointName) throws IOException { super(endPointName); } public void run() { try { //开启接收信息,自动确认 channel.basicConsume(endPointName, true,this); } catch (Exception e) { e.printStackTrace(); } } /** * 当用户注册时调用 */ public void handleCancelOk(String consumerTag) { System.out.println("Consumer "+consumerTag+" registered"); } /** * 当有可用新消息时调用 */ public void handleDelivery(String consumerTag, Envelope env, BasicProperties props, byte[] body) throws IOException { Map map = (HashMap)SerializationUtils.deserialize(body); System.out.println("Message Number "+map.get("message number")+"received."); } public void handleCancel(String consumerTag){} public void handleConsumeOk(String consumerTag) {} public void handleRecoverOk(String consumerTag) {} public void handleShutdownSignal(String consumerTag, ShutdownSignalException arg1) {}}
测试类:
package com.RabbitMQ;import java.io.IOException;import java.util.HashMap;import java.util.Map;import org.apache.commons.lang.SerializationUtils;import com.rabbitmq.client.AMQP.BasicProperties;import com.rabbitmq.client.Consumer;import com.rabbitmq.client.Envelope;import com.rabbitmq.client.ShutdownSignalException;public class QueneConsemer extends EndPoint implements Runnable, Consumer { public QueneConsemer(String endPointName) throws IOException { super(endPointName); } public void run() { try { //开启接收信息,自动确认 channel.basicConsume(endPointName, true,this); } catch (Exception e) { e.printStackTrace(); } } /** * 当用户注册时调用 */ public void handleCancelOk(String consumerTag) { System.out.println("Consumer "+consumerTag+" registered"); } /** * 当有可用新消息时调用 */ public void handleDelivery(String consumerTag, Envelope env, BasicProperties props, byte[] body) throws IOException { Map map = (HashMap)SerializationUtils.deserialize(body); System.out.println("Message Number "+map.get("message number")+"received."); } public void handleCancel(String consumerTag){} public void handleConsumeOk(String consumerTag) {} public void handleRecoverOk(String consumerTag) {} public void handleShutdownSignal(String consumerTag, ShutdownSignalException arg1) {}}
- RabbitMQ安装配置以及java的连接配置demo
- 安装rabbitmq以及集群配置
- Rabbitmq的安装配置
- rabbitmq 的安装配置
- rabbitMQ的安装配置
- SpringBoot+rabbitMq的配置和使用Demo
- RabbitMQ的安装,配置,监控
- RabbitMQ的安装,配置,监控
- RabbitMQ的安装,配置,监控
- RabbitMQ的安装,配置,监控
- RabbitMQ的安装及配置
- RabbitMQ的安装,配置,监控
- RabbitMQ的安装,配置,监控
- Google Protobuf的安装、配置、以及简单demo编译
- RabbitMq安装及java demo
- RabbitMQ安装配置手册
- rabbitmq 安装配置
- rabbitmq安装配置手记
- linux VM与容器的cpu、内存、文件IO测试
- 前端开发中的那些坑-数据返回值与显示值不一致
- Swagger简介
- js 倒计时
- 解决文档中有url链接时被强制换行的问题
- RabbitMQ安装配置以及java的连接配置demo
- 整理一些C#中常用的一些类型转换_ts
- 编程之美之"子数组的最大乘积"
- Unity 物理系统--碰撞、触发
- VCG文档
- iOS 金钱价格每三位加一个“,”逗号,小数点省略到两位
- Java常用排序算法/程序员必须掌握的8大排序算法
- CentOS 7 环境下安装 RabbitMQ 3.6.10
- Jenkins+svn+gradle+fir搭了一个持续集成环境