标签:Code Console 生产者 factory RabbitMQ WriteLine using channel
Nuget引入RabbitMQ Client
消费者:
// See https://aka.ms/new-console-template for more information
using RabbitMQ.Client;
using System.Text;
Console.WriteLine("Hello, World!");
string dir = AppDomain.CurrentDomain.BaseDirectory;
string? consumerName = Path.GetFileName(Path.GetDirectoryName(dir));
ConnectionFactory factory= new ConnectionFactory(); //创建链接工厂
factory.HostName = "192.168.8.21";
factory.UserName = "yangpeng";
factory.Password = "yangpeng";
factory.Port = 5677; //默认端口号是:5672
factory.AutomaticRecoveryEnabled = true;
using (IConnection connection = factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
//创建队列
channel.QueueDeclare(queue: "OnlyProducerMessageYangpeng", durable: true, exclusive: false, autoDelete: false, arguments: null);
//创建交换机
channel.ExchangeDeclare(exchange: "OnlyProducerMessageExChangeYangpeng", type: ExchangeType.Direct, durable: true, autoDelete: false, arguments: null);
//将队列和交换机绑定
channel.QueueBind(queue: "OnlyProducerMessageYangpeng", exchange: "OnlyProducerMessageExChangeYangpeng", routingKey: String.Empty, arguments: null);
Console.ForegroundColor=ConsoleColor.Red;
Console.WriteLine($"生产者{consumerName}已经准备就绪");
int i = 1;
while (i <= 1000)
{
string message = $"{consumerName}生成者发送第{i}条消息;";
byte[] body=Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: "OnlyProducerMessageExChangeYangpeng", routingKey: string.Empty, basicProperties: null, body: body);
Console.WriteLine($"消息已发送{i}条");
i++;
Thread.Sleep(500);
}
}
}
生产者:
// See https://aka.ms/new-console-template for more information
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
Console.WriteLine("Hello, World!");
string dir = AppDomain.CurrentDomain.BaseDirectory;
string? consumerName = Path.GetFileName(Path.GetDirectoryName(dir));
ConnectionFactory factory = new ConnectionFactory(); //创建链接工厂
factory.HostName = "192.168.8.21";
factory.UserName = "yangpeng";
factory.Password = "yangpeng";
factory.Port = 5677; //默认端口号是:5672
using (IConnection connection = factory.CreateConnection()) //基于链接工厂创建练级
{
using (var channel = connection.CreateModel()) //基于链接创建信道
{
Console.ForegroundColor = ConsoleColor.Green;
try
{
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body.ToArray());
Console.WriteLine($"{consumerName}成功接受到消息,消息内容为:{message}");
};
channel.BasicConsume(queue: "OnlyProducerMessageYangpeng", autoAck: true, consumer: consumer);
Console.WriteLine("Press[enter] to exit.");
Console.ReadLine();
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
}
标签:Code,Console,生产者,factory,RabbitMQ,WriteLine,using,channel 来源: https://www.cnblogs.com/yangpengNetCore/p/16667960.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。
