一、RabbitMQ基本概念和原理

1.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

2.RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写。

3.Channel

Channel是我们与RabbitMQ打交道的最重要的一个接口,我们大部分的业务操作是在Channel这个接口中完成的,包括定义Queue、定义Exchange、绑定Queue与Exchange、发布消息等。

4.Exchange(生产者将消息发送到Exchange(交换器),由Exchange将消息路由到一个或多个Queue中(或者丢弃),RabbitMQ常用的Exchange Type有fanout、direct、topic、headers这四种)

5.Queue(RabbitMQ的内部对象,用于存储消息)

6.基本工作原理

客户端(生产者) send Message -->Exchange (交换机通过不同的类型将消息保存到对应的queue)-->Queue

客户端(消费者)通过订阅来消费queue中的消息。

以上基础概念整理来源于 RabbitMQ基础概念详细介绍

、在Windows系统中安装RabbitMQ

1. 下载安装erlang (我用的是otp_win64_19.3版本)

下载地址 http://www.erlang.org/downloads(根据操作系统选择32还64位)

2. 下载安装rabbitmq-server(我用的是rabbitmq-server-3.6.10版本)

下载地址 http://www.rabbitmq.com/install-windows.html

安装好后,在看装目录下看到

接下来用启用DOS命令

a. cd 到sbin目录下,我的安装目录是D:\RabbitMQServer\rabbitmq_server-3.6.10\sbin, 输入D: 回车,cd  RabbitMQServer\rabbitmq_server-3.6.10\sbin

b. 查看安装是否成功命令 :rabbitmqctl status

c.安装管理插件命令:rabbitmq-plugins enable rabbitmq_management

安装成功,在浏览器中输入 http://127.0.0.1:15672/

输入来宾账号 guest 密码 guest ,成功登陆进来,是不是有点小激动。

guest 账号是管理员账号,可以添加Exchanges,Queues,Admin。但我们一般不使用guest账号,继续用命令来添加账号和权限。

d:添加用户:rabbitmqctl.bat add_user username password

e:添加“超级管理员”角色: rabbitmqctl.bat set_user_tags username administrator

mymq账号也是超级管理员了,Can access virtual hosts :No access ,可以看到还没有能够访问的虚拟机,接下来添加虚拟机。

f: 添加虚拟机:  rabbitmqctl add_vhost vhostName

myvhost虚拟机并没有Users,接下来给虚拟机绑定账号。

g:定虚拟机和用户权限:rabbitmqctl set_permissions -p 虚拟机名称 账户名 ".*" ".*" ".*"

h:处于习惯我一般删除掉guest账号:rabbitmqctl.bat delete_user username

好了,重新登陆管理页面,一切正常,接下来开始实战了。

、EasyNetQ的基本使用

a.项目中安装EasyNetQ

EasyNetQ是依赖于RabbitMQ.Client的,所以会被一并安装到项目中。

b.  PublishSubscribe

Publish发布消息

Model有个Queue的特性,定义Queue名称和Exchange名称。然后直接用Publish方法把Msg通过Model指定的交换机推送到指定队列去。

运行代码,看看MQ的管理页面。

已经创建了Model指定的交换机TestQueue.Exchange, Type:topic , Features:D 。D:Durable 说明默认创建的交换机是持久化的。

因为还没有订阅消息,所以在Queues中还看不到对应的队列。

Subscribe订阅消息

为什么要在订阅代码上套一个while(true)了? 是为了把控制台程序模拟成Windows服务,因为控制台程序运行一闪而过,没办法真正订阅到MQ的消息。

实际开发中,一般用Topself来把控制台程序发布成Windows服务,后面有时间再写一篇关于Topself的学习博客。

再重复刚才的Publish操作,测试下整个流程。

自定义Topic

这样消息会被发送到名称为Test.开头的所有Queue队列中。

c.  SendReceive

通过send和receive可以将消息发送到指定队列。

本文博客园地址:http://www.cnblogs.com/struggle999/p/6937530.html

RabbitMQ安装配置和基于EasyNetQ驱动的基础使用的更多相关文章

  1. centos7 rabbitmq安装/配置

    原文:centos7 rabbitmq安装/配置     因为RabbitMQ是由erlang实现的,所以要先安装erlang再安装rabbitMQ   1.先配置yum软件源地址EPEL(EPEL是 ...

  2. RabbitMQ安装配置

    安装RabbitMQ windows下的安装是非常简单的,我们需要准备两个东西 erlang的环境  下载windows和与之对象的操作系统位数安装包 http://www.erlang.org/do ...

  3. Windows 64位 RabbitMQ 安装配置

    1:下载Erlang,地址:http://www.erlang.org/download/otp_win64_19.0.exe ,双击安装即可(首先装) 2:下载RabbitMQ,RabbitMQ 3 ...

  4. 阿里云服务器下安装配置 vsftpd —— 基于CentOS 6.3 【简洁版】

    原文链接:http://www.tuicool.com/articles/nuiQBja 1.更新yum源 我是直接 yum update 更新的 2.安装vsftp 使用yum命令安装vsftpd ...

  5. .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...

  6. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  7. RabbitMQ学习在windows下安装配置

    RabbitMQ学习一. 在windows下安装配置 1.下载并安装erlang,http://www.erlang.org/download.html,最新版是R15B01(5.9.1).由于我机器 ...

  8. RabbitMQ_安装配置与管理

    RabbitMQ 安装配置与管理 安装 安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机 #wget  http://www.erlang.org/do ...

  9. windows 下rabbitmq 安装---转载

    原文地址:http://blog.sina.com.cn/s/blog_7cc0c8cc0101mb4a.html 1.下载并安装erlang,http://www.erlang.org/downlo ...

随机推荐

  1. CF #Manthan, Codefest 16 C. Spy Syndrome 2 Trie

    题目链接:http://codeforces.com/problemset/problem/633/C 大意就是给个字典和一个字符串,求一个用字典中的单词恰好构成字符串的匹配. 比赛的时候是用AC自动 ...

  2. CSS元素垂直居中方法总结

    坚持,坚持,坚持... 以上为自我鼓励,哈哈... ------------------------------------------------- 相信没有真正是尝试过的人应该都和我一样,觉得居中 ...

  3. 【原创】bootstrap框架的学习 第八课 -[bootstrap表单]

    Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 吹着表单或基本表单 向父 <form> 元素添加 role="form". 把标签 ...

  4. 为用户增加sudo权限(修改sudoers文件)

    在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开.普通用户执行到系统程序时,需要临时提升权限 ...

  5. 阿里云CentOS7.2服务器的安装

    第一步:下载服务器系统ISO安装文件 我使用的是阿里云的镜像:因为阿里云的服务在国内相对比较成熟 服务器镜像下载如下:http://mirrors.aliyun.com/centos/7/isos/x ...

  6. Sublime 3 如何使用列编辑模式

    前言 作为一名运维人员,文本IDE的列编辑模式对工作效率的提升很大.以前总用UE,觉得UE的列编辑模式设置很人性化(alt+c).后来接触了sublime,个人觉得它的列编辑模式使用对比UE略有差距. ...

  7. 在Android Studio上测试运行,Unity发布成Android包过程中所遇到的问题及解决方案

    问题一:Exception: JNI: Init'd AndroidJavaObject with null ptr 解决方法: 所有关于JNI出现的问题,只有三种错误存在,第一是需要在真机上运行测试 ...

  8. Django models Fild详解

    本文参考自:django官方文档models/field 在model中添加字段的格式一般为:  field_name = field_type(**field_options) 一  field o ...

  9. mysql5.7.16二进制安装

    1.下载二进制文件  cd /data  wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x ...

  10. PHP获得上(两)周时间

    就不手写了