使用MassTransit结合ActiveMQ时队列无法接收消息
MassTransit + ActiveMQ 消息发送异常排查
我创建了一个包含发布者和消费者的Web示例应用,采用MassTransit结合ActiveMQ实现消息通信。发送消息时无任何报错,但ActiveMQ Broker始终未接收到消息。已检查队列配置、Broker权限设置均无异常,修改broker.xml配置后问题仍未解决。以下是发布者配置代码、控制器代码及ActiveMQ队列截图,恳请协助排查问题。
发布者配置代码
builder.Services.AddMassTransit(config => { config.SetKebabCaseEndpointNameFormatter(); config.UsingActiveMq((ctx, cfg) => { cfg.Host("localhost", 61616, c => { //c.UseSsl(); c.Username("admin"); c.Password("admin"); }); cfg.ConfigureEndpoints(ctx); cfg.EnableArtemisCompatibility(); }); config.AddRequestClient<SampleMessage>(); }); builder.Services.AddTransient<IProducerService, ProducerService>();
控制器代码
public class ProducerController : ControllerBase { private readonly ILogger<ProducerController> _logger; private readonly ISendEndpointProvider _sendEndpointProvider; public ProducerController(ILogger<ProducerController> logger, ISendEndpointProvider sendEndpointProvider) { _logger = logger; _sendEndpointProvider = sendEndpointProvider; } [HttpPost] public async Task<IActionResult> Post([FromBody] SampleMessageContracts message) { try { _logger.LogInformation("Start Publisher"); var endpoint = await _sendEndpointProvider.GetSendEndpoint(new Uri("queue:MassTransitConsumer")); _logger.LogInformation("End Publisher: send message to the queue successfully"); return Ok("Send to queue successfully"); } catch (Exception ex) { _logger.LogError("Error in controller: " + ex.Message); return BadRequest("Error in controller: " + ex.Message); } } }
ActiveMQ Broker队列截图

内容的提问来源于stack exchange,提问作者Mayank Soni
相关产品推荐
相关产品推荐

