[ニャンコMQ(2)]RabbitMQ単機モード使用

3439 ワード

ハッハッ!今周私达はまた会って、今日私达は引き続きMQソフトウェアRabbitMQのストーリを言って、前節と成功したRabbitMQもインストールして机械をスタートさせて、それでは私达は始まるべき本当の接触とそれを使って业务の问题を解决することを管理して、紧张して下を见てください...
添付:
ニャーちゃんのブログ:w-blog.cn
RabbitMQ官网:http://www.rabbitmq.com/
1.ユーザー権限体系
RabbitMQではアカウントシステムが提供されており、アカウントシステムはvhostの周りに展開されています.では、vhostは何ですか.仮想空間やネーミングスペースという意味に近いものです.ユーザーごとにvhostや複数のvhostの操作権限を割り当てることができます.操作権限を持っているユーザーだけがこのvhostを管理することができます.異なるvhostではキュー名を繰り返すことができます.だからvhostは開発テスト環境を区別するために使用することができて、つまりrabbitMQを1セット配置すれば複数の環境に適用することができます
次に、管理者アカウントを作成し、後続のWebインタフェース管理時にユーザーがログインし、キューを使用するときのユーザーを作成します.
#admin      ,123456   
rabbitmqctl add_user admin 123456  

#           (            )
rabbitmqctl  set_user_tags admin administrator 

2.バックグラウンド管理インタフェース
rabbitMQは全面的な管理バックグラウンドプログラムを提供し、私たちはwebサービスを開く必要がありますhttp://ホストIP:15672を通じてアクセスすることができます(ファイアウォールを構築してブロックし、nginxを通じてIPアクセスを限定します)
rabbitmq-plugins enable rabbitmq_management #  web  

rabbitmq-plugins disable rabbitmq_management #  web  

管理者がログインすると次の画面が表示されます.
ユーザー管理では、現在のユーザーリストと、各ユーザーが操作できるvhostが表示されます.
ユーザーをクリックすると、新しいvhostの割り当てを制御できます.
Vhostはユーザーの下のメニューで作成できます
3.キューの使用
スタンドアロンモードの準備が完了するとRabbitMQを使用することができます.もちろん、SDKを開発するために言語を使用する必要があります.RabbitMqは、さまざまな言語の拡張を提供しています.http://www.rabbitmq.com/devto...
php-amqplibを例にcomposerを用いてインストールします
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;

$config = array(
    'host'     => "localhost",
    'port'     => "5672",
    'user'     => "admin",
    'password' => "123456",
    'vhost'    => "/"
);

//   RabbitMQ
$connection = new AMQPStreamConnection($config['host'], $config['port'], $config['user'], $config['password'], $config['vhost']);
//     
$channel = $this->connection->channel();

//        ,                         (           )
$this->channel->queue_declare("test_queue", false, true, false, false);

//                     
$message = new AMQPMessage("", array('delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT));
//           
$channel->basic_publish($message, '', "test_queue");

//                       
$channel->basic_qos(null, 1, null);
$channel->basic_consume("test_queue", '', false, false, false, false, function ($msg) {
    $data = $msg->body;
    echo $data;
    //           ,                   
    $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
});

//     
while (count($this->channel->callbacks)) {
    $this->channel->wait();
}

4まとめ
このセクションでは、スタンドアロンシーンでのユーザーの構成、Web管理インタフェースの使用、およびRabbitMQを使用してメッセージ消費メッセージを書き込む方法について説明しますが、RabbitMQが不幸にもダウンしたらどうするかという重要な問題があります.業務が正常に使えなくなったのではないでしょうか.RabbitMQにも柔軟なクラスタソリューションがあります.次の節では、クラスタに関するサポートを一緒に勉強します.では、今日のブログはここまでです.皆さんのサポートに感謝します.
注:筆者の能力は限られていて、間違っていることを指摘してほしいし、多くの交流を望んでいます.