tôi đang cố gắng để có được đầu của tôi xung quanh MassTransit và RabbitMQ và xếp hàng (ngày 1)Newbie - Là một Queue tiêu dùng cần thiết để cho xuất bản để làm việc trong MassTransit
Các câu hỏi tôi có được xem một "người tiêu dùng là cần thiết để xếp hàng để làm việc trong MT. Lý do tôi hỏi là vì lần đầu tiên tôi tạo Miền và Nhà sản xuất nhưng tôi không thấy bất kỳ mục hàng đợi nào trong cửa sổ quản lý RabbitMQ. "
Khi hàng đợi của người tiêu dùng được tạo sau đó tôi có thể thấy thông báo đang được xếp hàng đợi.
Dựa trên sự hiểu biết của tôi, Nhà sản xuất không bao giờ nhận thức được người tiêu dùng, vậy tại sao MassTransit yêu cầu hàng đợi của người tiêu dùng để bắt đầu xuất bản tin nhắn?
Các nhà sản xuất
using MassTransit;
namespace Producer
{
class Program
{
static void Main(string[] args)
{
Bus.Initialize(sbc =>
{
sbc.UseRabbitMq(); //1
sbc.UseControlBus();
sbc.EnableMessageTracing();
sbc.EnableRemoteIntrospection();
sbc.ReceiveFrom("rabbitmq://localhost/MT.Producer");
sbc.UseControlBus();
});
Bus.Instance.Publish(new NewOrderMessage { OrderName = "Hello World" });
}
}
}
Đơn
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MassTransit;
using Topshelf;
namespace Consumer
{
class Program
{
static void Main(string[] args)
{
Bus.Initialize(sbc =>
{
sbc.UseRabbitMq();
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://localhost/MT.ConsumerService");
});
var cfg = HostFactory.New(c =>
{
c.SetServiceName("MT.ConsumerService");
c.SetDisplayName("MT.ConsumerService");
c.SetDescription("MT.ConsumerService");
//c.BeforeStartingServices(s => {});
c.Service<ConsumerService>(a =>
{
a.ConstructUsing(service => new ConsumerService());
a.WhenStarted(o => o.Start());
a.WhenStopped(o => o.Stop());
});
});
try
{
cfg.Run();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw;
}
}
}
}
The Message
namespace Domain
{
public class NewOrderMessage
{
public NewOrderMessage()
{
OrderId = Guid.NewGuid();
}
public Guid OrderId { get; set; }
public string OrderName { get; set; }
}
}
Th e Dịch vụ tiêu dùng
namespace Consumer
{
class ConsumerService
{
readonly IServiceBus _bus;
public ConsumerService()
{
_bus = Bus.Instance;
}
public void Start()
{
_bus.SubscribeHandler<NewOrderMessage>(CreateOrder);
Console.WriteLine("Starting....");
}
public void Stop()
{
Console.WriteLine("Stopping....");
}
public void CreateOrder(NewOrderMessage command)
{
Console.WriteLine("Creating Order: {0} with Id: {1}", command.OrderName, command.OrderId);
}
}
}
mã được tạo bằng cách sử dụng các ví dụ trên web.
Sửa cũng muốn thêm rằng tất cả các không gian tên là các dự án khác nhau miền Nhà sản xuất Consumer
Kính trọng,
Mar
Tôi chỉ phát hiện ra rằng có một nhóm Google và câu trả lời cho câu hỏi của tôi là trong một trong những câu hỏi đó. https://groups.google.com/forum/?fromgroups=#!searchin/masstransit-discuss/publishing$20message$20without$20subscriber/masstransit-discuss/RU2_443iak8/OfILeKbfGNQJ – TheMar
Tôi sẽ đánh dấu câu hỏi này là đóng cửa ngay hôm nay để liên kết ở trên với nhóm google vẫn hiển thị được – TheMar