rabbitmq (一)用法
首先,主机一是window系统,虚拟机二 ubuntu,
ubuntu部署了rabbitmq服务端.默认监听5672端口.
由于rabbitmq内部有严格的权限系统,使用之前必须配置好权限.
默认网页是不允许访问的,需要增加一个用户修改一下权限,代码如下:
添加用户:rabbitmqctl add_user wc wc
添加权限:rabbitmqctl set_permissions -p "/" wc ".*" ".*" ".*"
修改用户角色rabbitmqctl set_user_tags wc administrator
然后就可以远程访问了,然后可直接配置用户权限等信息。
使用C#编写 消费者和生产者
首先使用nuget获取rabbitmq.
生产者代码:
using RabbitMQ.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace RMQ_Client
{
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "rabbitmq server ip", UserName = "wc", Password = "wc" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
//定义队列(hello为队列名)
channel.QueueDeclare("hello", false, false, false, null);
//发送到队列的消息,包含时间戳
string message = "Hello World!" + "_" + DateTime.Now.ToString();
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish("", "hello", null, body);
Console.WriteLine(" [x] Sent {0}", message);
}
}
}
}
}
消费者代码:
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace RMQ_Server
{
class Program
{
static void Main(string[] args)
{
var factory = new ConnectionFactory() { HostName = "rabbitmq server ip", UserName = "wc", Password = "wc" };
using (var connection = factory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
//定义队列(hello为队列名)
channel.QueueDeclare("hello", false, false, false, null); var consumer = new QueueingBasicConsumer(channel);
channel.BasicConsume("hello", true, consumer); Console.WriteLine(" [*] Waiting for messages." +
"To exit press CTRL+C");
while (true)
{
//接受客户端发送的消息并打印出来
var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
}
}
}
}
}
}
rabbitmq (一)用法的更多相关文章
- RabbitMQ基本用法、消息分发模式、消息持久化、广播模式
RabbitMQ基本用法 进程queue用于同一父进程创建的子进程间的通信 而RabbitMQ可以在不同父进程间通信(例如在word和QQ间通信) 示例代码 生产端(发送) import pika c ...
- RabbitMQ EasyNetq 用法
EasyNETQ帮助类 public class MQHelper { /// <summary> /// 发送消息 /// </summary> public static ...
- Rabbitmq概念用法
MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,它是消费-生产者模型的一个典型的代表,producer往消息队列中不断写入消息,而另一端consumer则可以读取或者订阅队列 ...
- redis&rabbitMQ安装
前言: 学习python已经有一段时间了,最近在学twisted(博客:twisted安装),redis,rabbitMQ感觉有点难度,所以还是写下博客整理下. 一.Redis的安装 redis是一种 ...
- 中小型研发团队架构实践六:如何用好消息队列RabbitMQ?
一.写在前面 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端 API 就那么几个,比我们日常编写程序时用到的 API 要少得多.但是分布式中间件在中小研发团队中使用得并不多,为什么 ...
- window下安装RabbitMQ
RabbitMQ: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消 ...
- rabbitmq的简单介绍一
该博客的主要讲解了以下几种rabbitmq的用法1.实现简单的生产者发送消息给消费者2.实现序列持久化3.实现消息持久化4.实现消息公平分发5.实现广播6.实现组播7.实现细分组播 先来看下rabbi ...
- 中小研发团队架构实践之RabbitMQ快速入门及应用
原文:中小研发团队架构实践之RabbitMQ快速入门及应用 使用过分布式中间件的人都知道,程序员使用起来并不复杂,常用的客户端API就那么几个,比我们日常编写程序时用到的API要少得多.但是分布式中间 ...
- Python之操作RabbitMQ
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. MQ全称为Message Queue, 消息队列(MQ)是一种应用程序 ...
随机推荐
- numpy delete
手动安装 sudo rm -rf /usr/local/lib/python2.7/site-packages/numpy/ sudo rm -rf /usr/local/lib/python2.7/ ...
- Awesome Tools
Awesome R: https://awesome-r.com/ (Chinese translation: http://www.ppvke.com/Blog/archives/40981) Aw ...
- linux服务管理 服务启动和自启动
服务启动和自启动 '服务启动' 就是在当前系统中让服务运行,并提供功能 '服务自启动' 自启动是指服务在系统开机或重启动之后,随着启动系统的启动而自动启动服务 服务自启动 [root@ssgao198 ...
- Win10系列:C#应用控件基础13
Image控件 开发Windows应用商店应用时,除了在界面中显示文字信息以外,还可以加入图片来配合说明及增加美观度.使用Image控件能够实现显示图片的功能,开发者可以根据需求使图片按照不同的方式显 ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- vue 关于solt得用法
solt 第一种用法 父组件 <templateSolt></templateSolt> <templateSolt> <p>slot分发了内容< ...
- 2/18 (pycharm 快捷键、循环、join语句)
Alt + Enter 快速修正 Ctrl + / 行注释/取消行注释 Ctrl + Shift + / 块注释 Ctrl + Alt + I 自动缩进 CTRL + D 复制选定的区域或 ...
- 2456 Aggressive cows
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23866 Accepted: 11141 ...
- Flink实战(1) - Apache Flink安装和示例程序的执行
在Windows上安装 从官方网站下载需要的二进制包 比如我下载的是flink-1.2.0-bin-hadoop2-scala_2.10.tgz,解压后进入bin目录 可以执行bat文件,也可以使用c ...
- Apache Hive处理数据示例
继上一篇文章介绍如何使用Pig处理HDFS上的数据,本文将介绍使用Apache Hive进行数据查询和处理. Apache Hive简介 首先Hive是一款数据仓库软件 使用HiveQL来结构化和查询 ...