mad*_*ree 3 .net c# esb masstransit rabbitmq
我有两个项目在不同的进程中运行,RMQ部署在一台单独的机器上.
这是我的发布商代码
Bus.Initialize(config =>
{
config.UseRabbitMq();
config.UseRabbitMqRouting();
config.UseControlBus();
config.EnableMessageTracing();
config.EnableRemoteIntrospection();
config.ReceiveFrom("rabbitmq://debug:debug@data.sampleserver.com:5672/bus/response-queue");
});
Console.ReadLine();
int i = 0;
while (i < 20)
{
i += 1;
Console.WriteLine("Publishing...");
Bus.Instance.Publish(new Message
{
Body = String.Format("Body = {0}", i)
});
Console.ReadLine();
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
这是我的订阅者代码:
Bus.Initialize(config =>
{
config.UseRabbitMq();
config.UseRabbitMqRouting();
config.ReceiveFrom("rabbitmq://debug:debug@data.sampleserver.com:5672/bus/response-queue");
config.UseControlBus();
config.EnableMessageTracing();
config.UseHealthMonitoring(10);
});
var service = HostFactory.New(config =>
{
config.SetServiceName("survey");
config.SetDisplayName("survey");
config.SetDescription("Survey service");
config.Service<Service>(s =>
{
s.ConstructUsing(sv => new Service(Bus.Instance));
s.WhenStarted(sv => sv.Start());
s.WhenStopped(sv => sv.Stop());
});
});
Task.Factory.StartNew(() =>
{
try
{
service.Run();
}
catch (Exception e)
{
Console.WriteLine(e);
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器中,我有以下订阅:
public Service(IServiceBus serviceBus)
{
_serviceBus = serviceBus;
_serviceBus.SubscribeHandler<Message>(Handle);
}
void Handle(Message message)
{
Console.WriteLine("Receive a new message with body {0}", message.Body);
}
Run Code Online (Sandbox Code Playgroud)
当我通过发布者发送一组消息时,只有少数消息成功到达订阅者.其中大多数属于响应队列错误.
我是masstransit的新手,我不明白里面发生了什么,也不明白我怎么弄明白.
你能在这种情况下推荐什么?
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |