安装消息服务器,win7下安装RabbitMQ消息服务器 + 读写队列

RabbitMQ是什么 ?

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

1:安装RabbitMQ需要先安装Erlang语言开发包。下载地址 http://www.erlang.org/download.html 在win7下安装Erlang最好默认安装。

配置环境变量 ERLANG_HOME C:\Program Files (x86)\erl5.9

添加到PATH  %ERLANG_HOME%\bin;

配置环境变量 C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-2.8.0

添加到PATH %RABBITMQ_SERVER%\sbin;

3:进入%RABBITMQ_SERVER%\sbin 目录以管理员身份运行 rabbitmq-plugins.bat

安装完成之后以管理员身份启动 rabbitmq-service.bat

4:浏览器访问localhost:55672  默认账号:guest  密码:guest

477add3ebeb2f91cc9309d0041646db5.png

创建队列名称为queue_sina ,java示例代码读写队列中queue_sina的消息queue_sina

private static final String exchangeName = "sina";

private static final String exchangeRoutingKey = "sina";

HashMap map = new HashMap();

map.put("text", request.getText());

map.put("image", imageUrl);

map.put("nick_name", this.getUserName(request.getUserid()));

map.put("shop_name", request.getShopname());

String tousu_map = gson.toJson(map, new TypeToken>(){}.getType());

System.out.println("tousu_map" + tousu_map);

//写入队列

Producer.sendMsg(PropsUtils.getInstance().getProperty(Constants.EXCHANGE_NAME,

exchangeName), PropsUtils.getInstance()

.getProperty(Constants.EXCHANGE_ROUTING_KEY,

exchangeRoutingKey), tousu_map);

//写入队列模版类

public class Producer {

private static AmqpTemplate amqpTemplate = null;

static {

ApplicationContext context = new AnnotationConfigApplicationContext(TousuConfiguration.class);

amqpTemplate = context.getBean(AmqpTemplate.class);

}

public static void sendMsg(String exchangeName,String routingKey,Object message){

amqpTemplate.convertAndSend(exchangeName, routingKey,message);

System.out.println("exchangeName: "+exchangeName);

System.out.println("routingKey: "+routingKey);

System.out.println("Sent : "+message);

}

}

//读取队列消息

public static void main(String[] args) {

//test

try {

//队列名称 PropertiesUtil.QUEUE_NAME=queue_sina

String queueName = PropertiesUtil.QUEUE_NAME;

ConnectionFactory factory = new ConnectionFactory();

//PropertiesUtil.HOST = localhost

factory.setHost(PropertiesUtil.HOST);

//PropertiesUtil.USER=guest

factory.setUsername(PropertiesUtil.USER);

//PropertiesUtil.PASS=guest

factory.setPassword(PropertiesUtil.PASS);

//PropertiesUtil.PORT=5672

factory.setPort(Integer.parseInt(PropertiesUtil.PORT));

Connection conn = factory.newConnection();

Channel channel = conn.createChannel();

channel.queueDeclare(queueName, true, false, false, null);

QueueingConsumer consumer = new QueueingConsumer(channel);

channel.basicConsume(queueName, true, consumer);

while(true) {

try {

QueueingConsumer.Delivery delivery = consumer.nextDelivery();

String message = new String(delivery.getBody());

System.out.println(" [x] Received '" + message + "'");

} catch (ShutdownSignalException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

} catch (IOException e) {

e.printStackTrace();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值