using MassTransit; using MassTransitDemo.Consumer.Consumers; using MassTransitDemo.Contracts; var builder = WebApplication.CreateBuilder(args); // 添加控制器服务 builder.Services.AddControllers(); // 添加API探索器(用于Swagger) builder.Services.AddOpenApi(); // 配置MassTransit和RabbitMQ builder.Services.AddMassTransit(x => { // 注册所有消费者 x.AddConsumer(); x.AddConsumer(); x.AddConsumer(); // 配置RabbitMQ传输 x.UsingRabbitMq((context, cfg) => { // 从配置中读取RabbitMQ连接信息 var rabbitMqConfig = builder.Configuration.GetSection("RabbitMQ"); var host = rabbitMqConfig["Host"]; var port = ushort.Parse(rabbitMqConfig["Port"]!); var username = rabbitMqConfig["Username"]; var password = rabbitMqConfig["Password"]; var virtualHost = rabbitMqConfig["VirtualHost"]; // 配置RabbitMQ主机连接 cfg.Host(host, port, virtualHost, h => { h.Username(username); h.Password(password); }); // 配置消息端点 cfg.ReceiveEndpoint("publish-subscribe-queue-1", e => { e.ConfigureConsumer(context); }); cfg.ReceiveEndpoint("publish-subscribe-queue-2", e => { e.ConfigureConsumer(context); }); cfg.ReceiveEndpoint("request-response-queue", e => { e.ConfigureConsumer(context); }); }); }); var app = builder.Build(); app.MapOpenApi(); app.UseSwaggerUI(options => { options.SwaggerEndpoint("/openapi/v1.json", "API v1"); }); // 映射控制器路由 app.MapControllers(); app.Run();