RabbitMQ学习(七)Ubuntu环境安装与.NET客户端测试

1、下载RabbitMQ Server安装包

Ubuntu环境下的安装包rabbitmq-server_3.3.5-1_all.deb的下载地址在这里:http://www.rabbitmq.com/install-debian.html

Ubuntu自9.04版本之后默认会安装RabbitMQ,但是版本会较老,所以我们需要安装上面的最新的安装包。

下载后直接双击安装即可,Erlang环境都是有的。

安装好了之后启动命令是:

invoke-rc.d rabbitmq-server start

停止命令是:

invoke-rc.d rabbitmq-server stop

2、编写.Net客户端测试程序

发送程序Send.cs代码是:

namespace RabbitMQ.SendReceive
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionFactory factory = new ConnectionFactory() { HostName = "192.168.1.103" };
            using (IConnection conn = factory.CreateConnection())
            {
                using (IModel channel = conn.CreateModel())
                {
                    channel.QueueDeclare("hello", false, false, false, null);

                    string mesg = "hello RabbitMQ";
                    byte[] body = Encoding.UTF8.GetBytes(mesg);

                    channel.BasicPublish("", "hello", null, body);
                    Console.WriteLine(" [x] Sent {0}", mesg);
                }
            }
        }
    }
}

接收程序Receive.cs代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;

namespace RabbitMQ.SendReceive
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionFactory factory = new ConnectionFactory() { HostName = "192.168.1.103" };
            using (IConnection conn = factory.CreateConnection())
            {
                using (IModel channel = conn.CreateModel())
                {
                    channel.QueueDeclare("hello", false, false, false, null);

                    QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel);
                    channel.BasicConsume("hello", true, consumer);
                    Console.WriteLine(" [*]Waiting for message...");

                    while (true)
                    {
                        var queueItem = (BasicDeliverEventArgs)consumer.Queue.Dequeue();

                        byte[] body = queueItem.Body;
                        string mesg = Encoding.UTF8.GetString(body);
                        Console.WriteLine(" [x] Received {0}", mesg);
                    }
                }
            }
        }
    }
}

注意需要先在这里(地址)下载rabbitmq-dotnet-client-3.3.5-dotnet-3.0,然后引入RabbitMQ.Client.dll和RabbitMQ.ServiceModel.dll两个DLL。

3、运行测试代码

我的测试代码是跑在Windows7上面的,而RabbitMQ Broker安装在Ubuntu的虚拟机上面,以桥接方式进行网络连接。

运行代码会出现访问被拒绝的异常。官网上有一段话:

Default user access

The broker creates a user guest with password guest.
Unconfigured clients will in general use these credentials. By default, these credentials can only be used when connecting to the broker as localhost so you will need to take action before connecting fromn any other machine.

意思是说未配置的客户端默认会以guest的身份(密码也是guest)作为访问消息中心(RabbitMQ Broker)的验证,但是这只在client和RabbitMQ Broker在同一台机器上的时候才有效,即才能够访问,要是跨机器,还需要做其他工作。

3.1、首先来看如何解决guest用户只能本机访问的问题:

"guest" user can only connect via localhost

By default, the guest user is prohibited from connecting to the broker remotely; it can only connect over a loopback interface
(i.e. localhost). This applies both to AMQP and to any other protocols enabled via plugins. Any other users you create will
not (by default) be restricted in this way.

This is configured via the loopback_users item in the configuration
file
.

If you wish to allow the guest user to connect from a remote host, you should set the loopback_users configuration
item to []. A complete rabbitmq.config which
does this would look like:

[{rabbit, [{loopback_users, []}]}].

这个上面已经说得很清楚了,默认情况下RabbitMQ的配置中loopback_users这个配置项需要修改为空[],因为默认的是配置为guest了,修改为空之后就没有guest只能本机访问这个限制了。

每一种发布版配置文件所在的位置都不一样,下面是常见的操作系统配置文件所在位置:

  • Generic UNIX - $RABBITMQ_HOME/etc/rabbitmq/
  • Debian/Ubuntu - /etc/rabbitmq/
  • RPM - /etc/rabbitmq/
  • Mac OS X (Macports) - ${install_prefix}/etc/rabbitmq/,
    the Macports prefix is usually /opt/local
  • Windows - %APPDATA%\RabbitMQ\

假如默认位置没有配置文件,自己新建一个即可。

我的Ubuntu就没有配置文件,我就自己新建了一个,内容只需要写上我要修改的这个配置项即可。

这样我WIndows7上面的测试代码就可以正常运行了!!!

3.2 其他方案:

It is advisable to delete the guest user
or change
the password
 to something private, particularly if your broker is accessible publicly.

可以看到一般来说建议删掉guest用户,或者修改guest用户的代码。

未完待续。。。

3、运行测试代码

时间: 2024-10-09 19:09:17

RabbitMQ学习(七)Ubuntu环境安装与.NET客户端测试的相关文章

Objective-c学习笔记—— Ubuntu 环境搭建 + HelloWorld

一直想学习IOS手机开发,今天开始涉入该领域.好吧,先从基础开始--搭建开发环境. 系统: Ubuntu 12.04 LTS  64 位 环境搭建步骤: 1.安装编译器 sudo apt-get install gnustep* 2.配置环境变量 # set GNUstep GNUSTEP_ROOT=/usr/share/GNUstep/Makefiles export GNUSTEP_ROOT source /usr/share/GNUstep/Makefiles/GNUstep.sh 3.编

hive学习系列2——环境安装

1.hive的安装  (1)解压缩.重命名.设置环境变量,参考hadoop1学习系列2 (2)在目录$HIVE_HOME/conf/下,执行命令mv hive-default.xml.template  hive-site.xml重命名     在目录$HIVE_HOME/conf/下,执行命令mv hive-env.sh.template  hive-env.sh重命名 (3)修改hadoop的配置文件hadoop-env.sh,修改内容如下:     export HADOOP_CLASSP

Ubuntu下安装可视化SVN客户端Rabbitvcs

如果你用过Windows下的tortoisesvn,肯定会感叹,同样是开源程序,为什么这些开源的东西不在开源的系统上先跑呢? 不用着急,那边有个乌龟,这篇有只兔子,只是看了太多的龟兔赛跑的故事,不知到最后谁会赢.那就有你评判了,先安装再说吧! 下面是它的屏幕截图 由于这个目前还没有在安装中心里面,所以只能是手动安装. 你可以参考这里自己安装, 也可以按照我的方法在Ubuntu下进行安装,因为里面没有中文. 下载压缩包,进入解压后的目录:http://code.google.com/p/rabbi

Linux学习——卸载Ubuntu,安装CentOS,第一次使用命令

最近,看了相关的资料,发现Ubuntu不是很利于学习Linux操作系统,而CentOS比较有利于学习Linux操作系统,就卸载了. 当然,对于菜鸟,自然是很没有主见. 卸载Ubuntu感觉很奇怪,下来Marfix输命令,出问题了,不过重启后就直接进WIN7了,教学可在Linux公社搜索. 安装CentOs看的此贴 http://www.linuxidc.com/Linux/2012-05/60828.htm,不过感觉他教的有问题,他是在逻辑分区(非C盘)安装,但是我的电脑显示错误,我就想到Ubu

RabbitMQ (1) 环境安装

首先是比较平常的安装步骤 1.下载erlang, 务必设置系统的环境变量, ERLANG_HOME=D:\Program\erl9.3 Path = %ERLANG_HOME%\bin 安装完后,命令行输入erl验证是否有效 2.下载RabbitMQ,这个下载exe文件直接安装就可以了 3.安装管理界面,命令行定位到RabbitMQ安装目录下的sbin,运行 rabbitmq-plugins enable rabbitmq_management 如果输入http://localhost:1567

RabbitMQ简单介绍+Windows环境安装

文章目录 1.RabbitMQ简介2.RabbitMQ与其他MQ有什么不同3.RabbitMQ环境安装3.1 安装erlang3.2 安装rabbitmq-server4. RabbitMQ管理平台介绍 1.RabbitMQ简介 RabbitMQ 是一个由 erlang 开发的 AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在

在Ubuntu下安装、配置和测试cuda[复制]

在Ubuntu下安装CUDA要比在Windows下稍微复杂和费事一些,尤其对于平台和一些其他依赖软件包的安装上要求多些. Nvidia官方只提供了Ubuntu10.10下的CUDA的Toolkit,SDK,自己一开始是想在Ubuntu11.10上安装CUDA的,结果安装了编译时却出现很多错误并且提示gcc版本过高(Ubuntu11.10内核是2.6而默认安装编译的gcc是4.6的)后来重新又把gcc4.6卸载再装了gcc4.4.结果由于之前使用的是默认的Ubuntu开源的nvidia驱动,还是不

Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 首先我们确定下我们安装的Ubuntu系统是否已经安装了java环境. 进入终端,敲入命令su,进入root模式(当然也可以省掉这一步),敲入命令java -version.如果看到这个界面,说明尚未安装Java环境, Ps:我们的课程中曾经讲过如何删除一个老的jdk,这里就略过不讲了. 继而,让我

FastDfs 学习进阶之环境安装及上传文件测试

一:环境介绍       10.63.13.138 tracker,nginx proxy 10.63.13.143 storage,nginx 二:资源包准备 FastDFS官方论坛:http://www.csource.org 资源下载路径:http://sourceforge.net/projects/fastdfs/files/ 本实验学习环境使用CENTOS 6.4 X64 需要下载的资源包: FastDFS源代码:FastDFS_v5.05.tar.gz nginx模块源代码:fas