diff --git a/backend/config/autoload/amqp.php b/backend/config/autoload/amqp.php index 2cac2c9..9cafb33 100644 --- a/backend/config/autoload/amqp.php +++ b/backend/config/autoload/amqp.php @@ -12,10 +12,11 @@ declare(strict_types=1); use Hyperf\Amqp\IO\IOFactory; use function Hyperf\Support\env; +// use App\Platform\OrderConsumer; return [ 'enable' => true, - 'default' => [ + 'default_producer' => [ 'host' => env('AMQP_HOST', 'localhost'), 'port' => (int) env('AMQP_PORT', 5672), 'user' => env('AMQP_USER', 'guest'), @@ -23,7 +24,7 @@ return [ 'vhost' => env('AMQP_VHOST', '/'), 'open_ssl' => false, 'concurrent' => [ - 'limit' => 2, + 'limit' => 1, ], 'pool' => [ 'connections' => 2, @@ -47,4 +48,99 @@ return [ 'connection_name' => null, ], ], -]; + 'default_consumer' => [ + 'host' => env('AMQP_HOST', 'localhost'), + 'port' => (int) env('AMQP_PORT', 5672), + 'user' => 'user_dataflow_consumer', + 'password' => 'change_me_consumer', + 'vhost' => env('AMQP_VHOST', '/'), + 'open_ssl' => false, + 'concurrent' => [ + 'limit' => 1, + ], + 'pool' => [ + 'connections' => 2, + ], + 'io' => IOFactory::class, + 'params' => [ + 'insist' => false, + 'login_method' => 'AMQPLAIN', + 'login_response' => null, + 'locale' => 'en_US', + 'connection_timeout' => 3, + // Try to maintain twice value heartbeat as much as possible + 'read_write_timeout' => 6, + 'context' => null, + 'keepalive' => true, + // Try to ensure that the consumption time of each message is less than the heartbeat time as much as possible + 'heartbeat' => 3, + 'channel_rpc_timeout' => 0.0, + 'close_on_destruct' => false, + 'max_idle_channels' => 10, + 'connection_name' => null, + ], + ], + // consumers 配置改为使用 注解方式定义,这里仅保留注释作为备注 + // 'consumers' => [ + // Orders Consumer - Single queue for all platforms + // [ + // 'exchange' => 'main.exchange', + // 'routingKey' => 'order.#', + // 'queue' => 'orders.queue', + // 'consumer' => OrderConsumer::class, + // 'nums' => 1, + // 'enable' => true, + // 'maxConsumption' => 0, + // 'qos' => [ + // 'prefetch_size' => 0, + // 'prefetch_count' => 100, + // 'global' => false, + // ], + // ], + // Products Consumer - Single queue for all platforms (commented out until ProductConsumer is implemented) + // [ + // 'exchange' => 'main.exchange', + // 'routingKey' => 'product.#', + // 'queue' => 'products.queue', + // 'consumer' => ProductConsumer::class, + // 'nums' => 1, + // 'enable' => true, + // 'maxConsumption' => 0, + // 'qos' => [ + // 'prefetch_size' => 0, + // 'prefetch_count' => 100, + // 'global' => false, + // ], + // ], + // Refunds Consumer - Single queue for all platforms (commented out until RefundConsumer is implemented) + // [ + // 'exchange' => 'main.exchange', + // 'routingKey' => 'refund.#', + // 'queue' => 'refunds.queue', + // 'consumer' => RefundConsumer::class, + // 'nums' => 1, + // 'enable' => true, + // 'maxConsumption' => 0, + // 'qos' => [ + // 'prefetch_size' => 0, + // 'prefetch_count' => 100, + // 'global' => false, + // ], + // ], + // Inventory Consumer - Single queue for all platforms (commented out until InventoryConsumer is implemented) + // [ + // 'exchange' => 'main.exchange', + // 'routingKey' => 'inventory.#', + // 'queue' => 'inventory.queue', + // 'consumer' => InventoryConsumer::class, + // 'nums' => 1, + // 'enable' => true, + // 'maxConsumption' => 0, + // 'qos' => [ + // 'prefetch_size' => 0, + // 'prefetch_count' => 100, + // 'global' => false, + // ], + // ], + // ], +]; \ No newline at end of file