分类:
RabbitMq




Fanout类型交换机的特点是:
同样的数据分发给每一个自己所绑定的队列,每个队列可以按照自己的需求对数据进行不同的处理
【注意】:Fanout类型不会通过routingKey进行分类,所以无论你的数据中写不写routingKey都没用
队列1与队列2的代码:
队列2就把代码中队列名改成2就可以了
//192.168.1.63
//创建一个连接工厂
ConnectionFactory factory = new ConnectionFactory()
{
HostName= "192.168.1.63",
UserName = "hbadmin",
Password= "hbadmin"
};
using (var conntion = factory.CreateConnection())
{
using (var channel = conntion.CreateModel())
{
//申明交换机
channel.ExchangeDeclare("myfanoutexchange", ExchangeType.Fanout, true, false, null);
//创建队列
channel.QueueDeclare("myfanoutqueue1", true, false, false, null);
//将queue绑定到exchange之上
channel.QueueBind("myfanoutqueue1", "myfanoutexchange", string.Empty, null);
//创建并添加事件
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (sender,e)=>
{
var msg = Encoding.UTF8.GetString(e.Body);
Console.WriteLine(msg);
};
channel.BasicConsume("myfanoutqueue1", true, consumer);
Console.WriteLine("consumer【1】端启动完毕!");
Console.Read();
}
}数据端代码
ConnectionFactory factory = new ConnectionFactory()
{
HostName = "192.168.1.63",
UserName = "hbadmin",
Password = "hbadmin"
};
using (var conntion = factory.CreateConnection())
{
using (var channel = conntion.CreateModel())
{
//加入100条数据
for (int i = 0; i < 100; i++)
{
var msg = Encoding.UTF8.GetBytes($"{i}:你好鸭!");
channel.BasicPublish("myfanoutexchange", string.Empty, null, msg);
Console.WriteLine(i);
}
Console.Read();
}
}来看看结果

我们可以发现:
队列1与队列2数据是相同,对吧!
中途就可以通过不同队列实现不同的功能就行了!
rabbitmq基础命令
rabbitmqctl stop_app #停止rabbitmq运行 rabbitmqctl start_app #启动rabbitmq运行 rabbitmqctl reset #格式化mq 【注意】:如需要格式化mq,需要先stop_app,然后reset,再start_app哟!
本期就这样
,大家有机会多尝试!
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术