RabbitMQ.NET 메시지 큐 사용 설명
우선 설치 패 키 지 를 다운로드 합 니 다.저 는 모두 win 7 64 비트 입 니 다.
홈 페이지 에 가서 otp 다운로드win64_19.0.exe rabbitmq-server-3.6.3.exe 와 설치 되 어 있 습 니 다.
그리고 프로 그래 밍 을 시 작 했 습 니 다.
(1)생산자 클래스 생 성:
class Program
{
private static void Main()
{
// RabbitMQ
var connectionFactory = new ConnectionFactory
{
HostName = "127.0.0.1",
Port = 5672,
UserName = "guest",
Password = "guest",
Protocol = Protocols.DefaultProtocol,
AutomaticRecoveryEnabled = true, //
RequestedFrameMax = UInt32.MaxValue,
RequestedHeartbeat = UInt16.MaxValue //
};
try
{
using (var connection = connectionFactory.CreateConnection())
{
using (var channel = connection.CreateModel())
{
// ,
channel.ExchangeDeclare("SISOExchange", ExchangeType.Direct, true, false, null);
// , , ,
channel.QueueDeclare("SISOqueue", true, false, false, null);
//
channel.QueueBind("SISOqueue", "SISOExchange", "optionalRoutingKey");
//
var properties = channel.CreateBasicProperties();
properties.DeliveryMode = 2; // ,
//
// ( ) , , ID,
var encoding = new UTF8Encoding();
for (var i = 0; i < 10; i++)
{
var msg = string.Format(" #{0}?", i + 1);
var msgBytes = encoding.GetBytes(msg);
//RabbitMQ , 。 , 。 , 。 , , 。 。 , , 。 。
// :direct,topic,headers,fanout。
//Exchange: , exchange:direct, fanout,topic, ;
//RoutingKey: RabbitMQ , Binging Exchange ;
//Queue: , , , : 、 、 , Consumer ;
channel.BasicPublish("SISOExchange", "optionalRoutingKey", properties, msgBytes);
}
channel.Close();
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine(" !");
Console.ReadKey(true);
}
}
(1)소비자 클래스 만 들 기:
class Program
{
private static void Main()
{
// RabbitMQ
var connectionFactory = new ConnectionFactory
{
HostName = "127.0.0.1",
Port = 5672,
UserName = "guest",
Password = "guest",
Protocol = Protocols.AMQP_0_9_1,
RequestedFrameMax = UInt32.MaxValue,
RequestedHeartbeat = UInt16.MaxValue
};
using (var connection = connectionFactory.CreateConnection())
using (var channel = connection.CreateModel())
{
// 1
channel.BasicQos(0, 1, false);
// ,
channel.ExchangeDeclare("SISOExchange", ExchangeType.Direct, true, false, null);
// ,
channel.QueueDeclare("sample-queue", true, false, false, null);
//
channel.QueueBind("SISOqueue", "SISOExchange", "optionalRoutingKey");
using (var subscription = new Subscription(channel, "SISOqueue", false))
{
Console.WriteLine(" ...");
var encoding = new UTF8Encoding();
while (channel.IsOpen)
{
BasicDeliverEventArgs eventArgs;
var success = subscription.Next(2000, out eventArgs);
if (success == false) continue;
var msgBytes = eventArgs.Body;
var message = encoding.GetString(msgBytes);
Console.WriteLine(message);
channel.BasicAck(eventArgs.DeliveryTag, false);
}
}
}
}
}
소비자-결 과 는 그림 과 같다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Golang "일등 시민"- 함수 (function)2. 성명 함수: 일반 함수는 반드시 먼저 성명해야 호출할 수 있다 다섯째, 함수 변수 - 함수를 값으로 변수에 저장 익명 함수 성명, 호출 익명 함수 리셋 함수 실현 익명 함수 구현 조작 봉인 함수 자체가 값으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.