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();  

            }  

    }

  • 相关阅读:
    Appium 服务关键字(转)
    android自动化之appium的环境搭建
    关于性能测试几个名词概念的说明
    关于.net服务启动注册到zookeeper,但是注册节点20分钟自动消失解决办法
    关于tomcat启动报“this web application instance has been stopped already”的处理
    loadrunner在win10破解提示:Cannot save the license information because acceses to the registry is denied的解决办法
    Teamcity部署.net服务“无法连接到远程服务器”解决方式
    数据库主从不同步问题随笔
    eclipse 常用快捷键
    在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
  • 原文地址:https://www.cnblogs.com/systemnet123/p/3267967.html
Copyright © 2011-2022 走看看