1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$exchange = 'devops.logs';
$queueAll = 'devops.logs.all';
$queueError = 'devops.logs.error';
$connection = new AMQPStreamConnection('10.0.0.100', '5672', 'guest', 'guest', '/');
$channel = $connection->channel();
$num = rand(0, 10);
if ($num % 3 == 0) {
$level = 'error';
} elseif ($num % 3 == 1) {
$level = 'warning';
} else {
$level = 'common';
}
//全量日志消费者
$channel->queue_declare($queueAll, false, false, false, false);
$channel->queue_bind($queueAll, $exchange, 'devops.logs.*');
//Error日志消费者
$channel->queue_declare($queueError, false, false, false, false);
$channel->queue_bind($queueError, $exchange, 'devops.logs.error');
$data = json_encode(['taskId' => strval(time()), 'name' => 'devops']);
$msg = new AMQPMessage($data);
$ret = $channel->basic_publish($msg, $exchange, 'devops.logs.' . $level);
var_dump($ret);
$channel->close();
$connection->close();
|