zoukankan      html  css  js  c++  java
  • windows下安装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%in;

    2:安装RabbitMQ 下载地址 http://www.rabbitmq.com/download.html  安装教程:http://www.rabbitmq.com/install-windows.html

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

          添加到PATH %RABBITMQ_SERVER%sbin;

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

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

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

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

    private static final String exchangeName = "sina";

    private static final String exchangeRoutingKey = "sina";

    HashMap<String,String> map = new HashMap<String,String>();

    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<HashMap<String,String>>(){}.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();  

            }  

    }

  • 相关阅读:
    setAnimationTransition:forView:cache: 运行动画时背景色问题
    架构师速成4.6-软技能和硬技能
    Java获取某年某周的第一天
    openssl之BIO系列之12---文件描写叙述符(fd)类型BIO
    centos 使用 CP 命令 不提示 覆盖
    [3 Jun 2015 ~ 9 Jun 2015] Deep Learning in arxiv
    P1314 聪明的质监员
    P2858 [USACO06FEB]奶牛零食Treats for the Cows
    1163 访问艺术馆
    P1352 没有上司的舞会
  • 原文地址:https://www.cnblogs.com/systemnet123/p/3267967.html
Copyright © 2011-2022 走看看