mac-air上安装 rabbitmq 并简单使用
简介:
- brew 安装 rabbitmq,docker安装rabbitmq
- 安装官方php-amqp 扩展
- 简单使用样例(发送10次helloworld)
内容:
1
1.1 docker 安装 rabbitmq(前提是系统已安装docker)
编写docker-compose.yml文件内容
version: '3'
services:
rabbitmq: # https://hub.docker.com/_/rabbitmq/
image: rabbitmq:3.7.7-management-alpine
hostname: myrabbitmq
ports:
- "5672:5672" # mq port
- "15672:15672" # admin port
启动:
docker-compose up -d rabbitmq
显示如下安装成功:
1.2 也可通过 brew方式安装 rabbitmq
brew install rabbitmq
显示如下安装成功。
如访问 http://127.0.0.1:15672 未出现预期页面,可能未启动服务,执行如下命令启动。
brew services start rabbitmq
访问正常如下,默认账号密码为: guest guest。
登录后页面。
2安装官方php-amqp 扩展
未安装php-amqp扩展,或者扩展安装失败,执行php代码会出现如下提示。
安装rabbitmq-c。
brew install rabbitmq-c
下载官方php-amqp 扩展。rabbitmq 是amqp协议的开源实现。
curl 'http://pecl.php.net/get/amqp-1.9.3.tgz' -o amqp-1.9.3.tgz
解压下载包。进入源码根目录。执行如下命令。
phpize
--with-librabbitmq-dir这个需要修改为你环境rabbitmq-c的安装地址,brew 安装成功是最后会出现此安装目录信息。
--with-php-config这个配置为你环境的php-config地址
./configure --with-php-config=/usr/local/Cellar/php@5.6/5.6.39/bin/php-config -with-amqp --with-librabbitmq-dir=/usr/local/Cellar/rabbitmq-c/0.9.0
make && make install
make成功,会出现如下信息。
添加.so文件至php.ini文件。
重启php-fpm nginx。
打印phpinfo()。显示如下,则安装成功。
3 官方样例
https://www.rabbitmq.com/tutorials/tutorial-one-php.html
例子:发送10次hello world
composer.json
{
"require": {
"php-amqplib/php-amqplib": ">=2.6.1"
}
}
引入包
composer install
编写消费者代码:
receive.php
<?php
/**
* Created by Afei.
* User: feiwang
* Date: 2019-08-15
* Time: 21:00
*/
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection; $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel(); $channel->queue_declare('hello', false, false, false, false); echo " [*] Waiting for messages. To exit press CTRL+C\n"; $callback = function ($msg) {
echo ' [x] Received ', $msg->body, "\n";
};
$channel->basic_consume('hello', '', false, true, false, false, $callback);
while ($channel->is_consuming()) {
$channel->wait();
}
$channel->close();
$connection->close();
消息生产者代码:
send.php
<?php
/**
* Created by Afei.
* User: feiwang
* Date: 2019-08-15
* Time: 20:55
*/
require_once __DIR__ . '/vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage; $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel(); $channel->queue_declare('hello', false, false, false, false);
for ($i=0;$i<10;$i++){ $m = 'Hello World! time now:'.date("H:i:s",time())." ".$i;
$msg = new AMQPMessage($m);
$channel->basic_publish($msg, '', 'hello');
echo $m."\n";
} $channel->close();
$connection->close();
先执行 php receive.php
再执行 php send.php
效果:
mac-air上安装 rabbitmq 并简单使用的更多相关文章
- mac air上archlinux的安装及优化
前言 最近总感觉跑了两年多ubuntu系统的MacBookAir6,2越来越不行了,内存总是亮红灯,软件效率也低了不少.最直接的解决方法当然是换电脑,购买一台配置更好的,比如2017款xps,不过在我 ...
- 在mac上安装rabbitmq
在 OS X 上安装 RabbitMQ¶ 在 Snow Leopard 上安装 RabbitMQ 最简单的方式就是 Homebrew ——OS X 上的一款新颖别致,光彩动人的包管理系统. 在本例中, ...
- Mac air苹果笔记本安装Win10双系统教程(绝对能成功,超详细!)[转]
转自:http://www.xitonghe.com/jiaocheng/anzhuang-4676.html 在MAc苹果电脑,Mac air上安装Windows7相信大家都已经会了吧,好吧Win7 ...
- 在Centos上安装RabbitMQ流程(转)
在Centos上安装RabbitMQ流程------------------------ 1. 需求 由于项目中要用到消息队列,经过ActiveMQ与RabbitMQ的比较,最终选择了RabbbitM ...
- 关于如何在mac系统上安装Git并在码市上建立项目
对Git一窍不通,为了在mac系统上安装Git,查了很多资料,走了很多弯路,一切搞定后发现其实很简单. 1.在https://brew.sh上按要求安装Homebrew. 2.在电脑终端键入brew ...
- [转]在Windows上安装RabbitMQ
原文链接 翻译:xiezc 下载服务器 描述 下载 Windows系统安装程序(来自Bintray) 的RabbitMQ的服务器-3.7.4.exe (签名) Windows系统安装程序(来 ...
- 在 mac 系统上安装 python 的 MySQLdb 模块
在 mac 系统上安装 python 的 MySQLdb 模块 特别说明:本文主要参考了Mac系统怎么安装MySQLdb(MySQL-Python) 第 1 步:下载 MySQL-python-1.2 ...
- 消息队列 - mac上安装RabbitMq (转)
什么是RabbitMQ? RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也称为面向消息的中间件).支持WIndows.Linux.MAC OS 操作系 ...
- mac上安装mongoDb以及简单使用
年初粗略学习了下node,这好几个月没玩,突然发现已经忘完了,还是简单记录下基本知识,方便再次使用时资料查找. 一.mongoDb安装 在mac上安装了brew的情况下,可以直接执行命令 brew i ...
随机推荐
- 【codeforces 761C】Dasha and Password(动态规划做法)
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 2018-12-25-WPF-如何在-WriteableBitmap-写文字
title author date CreateTime categories WPF 如何在 WriteableBitmap 写文字 lindexi 2018-12-25 09:13:57 +080 ...
- 使用iOSSelect.js实现iOS的select下拉选择日期的联动效果
引入文件: <link rel="stylesheet" href="/static/css/iosSelect.css"> <script ...
- Python3使用过程中需要注意的点
命名规则 变量 变量名只能是数字.字母或下划线的任意组合 变量名的第一个字符不能是数字 不能使用关键字作为变量名 变量的定义要具有可描述性 变量名不宜过长.不宜使用中文.拼音 常量(常用在配置文件中) ...
- Java内存溢出java.lang.OutOfMemoryError: PermGen space
今天把以前的一个项目部署在tomcat,启动没问题.因为用到了webservice,当调用webservice中的方法时一直报内存溢出异常 Exception in thread "http ...
- C# 获取进程退出代码
我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 static void Main(string[] args) ...
- Linux 内核 usb_control_msg 接口
usb_control_msg 函数就像 usb_bulk_msg 函数, 除了它允许一个驱动发送和结束 USB 控制信息: int usb_control_msg(struct usb_device ...
- goasp-onvif实现nvr server问题点滴
参考了:https://blog.csdn.net/saloon_yuan/article/details/24901597,本文以原贴为基础做了一些修改,非常感谢原作者. 1:开发框架搭建 ...
- 小心Powershell的位数
我们都知道64位的 Windows 中有两个Powershell,32位的 Windows Powershell(x86)和64位的 Windows Powershell.(当然,32位的Window ...
- PostgreSQL 遇到 column "value" does not exist
初次使用PostgreSQL,在执行插入语句的时候死活插入不进去数据 INSERT INTO pre_trait ( archive_id, apply_from, owner_area_code ) ...