热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

为什么80%的码农都做不了架构师?>>>   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;

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

      配置环境变量 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

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

创建队列名称为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();  

        }  

}


转载于:https://my.oschina.net/cpy/blog/486119


推荐阅读
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文深入探讨了 Exchange Server 2010 中客户端访问的代理和重定向机制,特别是在跨站点环境中如何配置这些功能以确保用户能够顺利访问邮箱服务。通过详细解析不同场景下的应用,帮助管理员更好地理解和实施相关设置。 ... [详细]
  • 一个登陆界面
    预览截图html部分123456789101112用户登入1314邮箱名称邮箱为空15密码密码为空16登 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
  • 配置PHPStudy环境并使用DVWA进行Web安全测试
    本文详细介绍了如何在PHPStudy环境下配置DVWA( Damn Vulnerable Web Application ),并利用该平台进行SQL注入和XSS攻击的练习。通过此过程,读者可以熟悉常见的Web漏洞及其利用方法。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 尝试执行数据库模式加载时遇到错误'Mysql2::Error: 指定的键太长;最大键长度为767字节'。本文将探讨这一问题的成因及解决方案。 ... [详细]
  • 本文介绍了如何通过在数据库表中增加一个字段来记录文章的访问次数,并提供了一个示例方法用于更新该字段值。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
author-avatar
mobiledu2502918541
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有