文章写作前提,在项目中,有后端自动向前端推送消息或者大数据时,websocket明显大数据以及实时性不太友好,由此想到了消息中间件mq。
现就安装以及使用总结记录如下:
一、安装步骤
1.官网下载对应操作系统版本的安装包,注意与ERLANG版本的匹配
2.现安装ERLANG 配置环境变量ERLANG_HOME = 安装根目录 如 C:\Program Files\erl-23.0
3. 安装rabbitmq后 在\sbin 目录下 后行执行 rabbitmq的相关插件
rabbitmq-plugins enable rabbitmq_management
新增用户
rabbitmqctl add_user admin 111111
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" .*" .*"
查看状态
rabbitmqctl status
因需要前端连接mq,所以多安装stomp协议插件
rabbitmq-plugins enable rabbitmq_management rabbitmq_web_stomp rabbitmq_stomp
rabbitmq 访问地址为 ip:15672
二、rabbitmq使用
代码
/**
* 创建主题交换机
*/
public TopicExchange createTopicExchange(String exchangeName) {
//交换机
TopicExchange topicExchange = new TopicExchange(exchangeName);
rabbitAdmin.declareExchange(topicExchange);
return topicExchange;
}
/**
* 创建队列
*/
public Queue createQueue(String queueName) {
//队列
Queue queue = new Queue(queueName);
rabbitAdmin.declareQueue(queue);
return queue;
}
/**
* 绑定交换机和队列
*
* @param exchange 主题交换机
* @param queue 队列
* @param routerKey 路由key
*/
public void binding(TopicExchange exchange, Queue queue, String routerKey) {
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(routerKey));
}
/**
* 创建交换机和队列并通过路由key绑定
*
* @param exchangeName 主题交换机名称
* @param queueName 队列名称
* @param routerKey 路由key
*/
public void createExchangeAndQueue(String exchangeName, String queueName, String routerKey) {
binding(createTopicExchange(exchangeName), createQueue(queueName), routerKey);
}