RabbitMQ:安装、配置与使用初探
2017-09-08 10:41
323 查看
简单的工作笔记,以免自己忘了。
当前最新版是3.5.6,我需要在CentOS上安装,所以下载了那个RPM包。安装过程就非常方便了,先安装一个erlang,我是直接在rabbitmq官网上下载到合适的RPM包,http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm。如果你在安装erlang时遇到缺失包,那就先安装需要的东西吧。
如果启动报这个错误:epmd error for host “demo”: timeout ,那么只需要修改一下hosts文件,增加你的主机名,注意,比如你的主机叫 demo.woplus,在hosts中配了 127.0.0.1 demo.woplus 也不行,你需要在hosts中再加一个 127.0.0.1 demo。
第一件事要创建用户,因为缺省的guest/guest用户只能在本地登录,所以先用命令行创建一个admin/admin123,并让他成为管理员。
现在可用使用浏览器访问管理台,就用刚才创建的admin登录即可,端口是15672。
在管理台我们,我们需要为刚才的admin配置权限,见上图,点名字进去即可,conf/write/read 都配成缺省显示的那个.* 即可。
然后我们新建一个用户 test/test123,一会儿用它来写HelloWorld。
我并没有做其它配置,这意味着我们使用的是缺省配置,基本够用了,如果以后有需要再修改吧,可以参考官网上的帮助:http://www.rabbitmq.com/configure.html#config-items
我用Maven新建一个工程,修改POM文件,增加如下:
大概说明一下,ConnectionFactory先填上创建连接要的参数(主机地址、登录账户等),然后就是newConnection()得到Connection,并创建出一个频道Channel。
从Channel我们可以构造出一个消费者Consumer用来监听收到的消息,也可以使用channel发布消息。RabbitMQ的消息是byte[],所以需要将字串转成字节数组才能发送。
好了,今天到此,改天继续。
一、下载及安装
首先去官网下载最新版本:http://www.rabbitmq.com/download.html当前最新版是3.5.6,我需要在CentOS上安装,所以下载了那个RPM包。安装过程就非常方便了,先安装一个erlang,我是直接在rabbitmq官网上下载到合适的RPM包,http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm。如果你在安装erlang时遇到缺失包,那就先安装需要的东西吧。
# rpm -ihv erlang-18.1-1.el6.x86_64.rpm # rpm -ihv rabbitmq-server-3.5.6-1.noarch.rpm缺省配置先启动看看:
# /sbin/service rabbitmq-server start Starting rabbitmq-server: SUCCESS
如果启动报这个错误:epmd error for host “demo”: timeout ,那么只需要修改一下hosts文件,增加你的主机名,注意,比如你的主机叫 demo.woplus,在hosts中配了 127.0.0.1 demo.woplus 也不行,你需要在hosts中再加一个 127.0.0.1 demo。
二、配置
原本想直接先HelloWorld的,但是不行,如果没有做一些必要的权限配置,后面那个HelloWorld是跑不起来的。所以,先说说安装之后要做的几件事。第一件事要创建用户,因为缺省的guest/guest用户只能在本地登录,所以先用命令行创建一个admin/admin123,并让他成为管理员。
# ./rabbitmqctl add_user admin admin123 # ./rabbitmqctl set_user_tags admin administrator然后,我们启用WEB管理。
# ./rabbitmq-plugins enable rabbitmq_management
现在可用使用浏览器访问管理台,就用刚才创建的admin登录即可,端口是15672。
在管理台我们,我们需要为刚才的admin配置权限,见上图,点名字进去即可,conf/write/read 都配成缺省显示的那个.* 即可。
然后我们新建一个用户 test/test123,一会儿用它来写HelloWorld。
我并没有做其它配置,这意味着我们使用的是缺省配置,基本够用了,如果以后有需要再修改吧,可以参考官网上的帮助:http://www.rabbitmq.com/configure.html#config-items
三、Java Client
现在可以来个 Say HelloWorld了。我用Maven新建一个工程,修改POM文件,增加如下:
dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>3.5.6</version> </dependency> </dependencies>使用官方的java-client即可。然后代码如下:
public class App { private final static String QUEUE_NAME = "hello"; static boolean isBreak =false; public static void main( String[] args ) { System.out.println( "Hello World!" ); ConnectionFactory factory = new ConnectionFactory(); factory.setUsername("test"); factory.setPassword("test123"); factory.setHost("192.168.0.197"); factory.setVirtualHost("/"); factory.setPort(5672); try { Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); Consumer consumer = new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String message = new String(body, "UTF-8"); System.out.println(" [x] Received '" + message + "'"); isBreak=true; } }; channel.basicConsume(QUEUE_NAME, true, consumer); channel.queueDeclare(QUEUE_NAME, false, false, false, null); String message = "Hello World!"; channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '" + message + "'"); while(!isBreak){ try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } channel.close(); connection.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
大概说明一下,ConnectionFactory先填上创建连接要的参数(主机地址、登录账户等),然后就是newConnection()得到Connection,并创建出一个频道Channel。
从Channel我们可以构造出一个消费者Consumer用来监听收到的消息,也可以使用channel发布消息。RabbitMQ的消息是byte[],所以需要将字串转成字节数组才能发送。
好了,今天到此,改天继续。
相关文章推荐
- RabbitMQ:安装、配置与使用初探
- rabbitmq实践笔记(一):安装、配置与使用初探
- RabbitMQ:安装、配置与使用初探
- Solr使用初探——Solr的安装环境与配置
- RabbitMQ安装配置使用指南
- 安装 RabbitMQ C#使用-摘自网络(包括RabbitMQ的配置)
- Solr使用初探——Solr的安装环境与配置
- Solr使用初探——Solr的安装环境与配置
- RabbitMQ安装,配置和使用
- rabbitmq 结合php的安装配置使用
- rabbitmq简明使用系列1(服务器安装,配置,管理)
- rabbitmq 完整安装 简单配置使用
- Java中使用MySQL从安装、配置到实际程序测试详解
- PHP 开发环境的选择、建立及使用(4)--Apache 的安装和配置
- zlib 与 libpng 的配置与使用 part 2 zlib的安装
- iptables防火墙配置工具ShoreWall的安装和使用实例
- zlib 与 libpng 的配置与使用 part 3 libpng的安装与生成PNG图片
- [转]svn服务器安装配置与svn的eclipse的subclipse插件使用
- svn服务器安装配置与svn的eclipse的subclipse插件使用
- 系统配置:GRUB安装配置及使用汇总