func NewRabbitMQ(cfg *config.RabbitMQConfig) (*RabbitMQ, error) { connStr := fmt.Sprintf("amqp://%s:%s@%s:%s/", cfg.User, cfg.Pass, cfg.Host, cfg.Port) // Set the FrameSize to match the server's frame_max setting amqpConfig := amqp.Config{ FrameSize: 2621440, // 2.5 MB } conn, err := amqp.DialConfig(connStr, amqpConfig) if err != nil { return nil, fmt.Errorf("failed to connect to RabbitMQ: %w", err) } ch, err := conn.Channel() if err != nil { return nil, fmt.Errorf("failed to open a channel: %w", err) } return &RabbitMQ{ connection: conn, channel: ch, QueueName: cfg.QueueName, }, nil }