Installation Configuration Message Queuing Service rabbitmq

A. Install erlang erlang Rabbitmq based on language development, it is necessary to install erlang virtual machine 1. Installation through yum
# wget -O /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo
# yum install erlang
2. Source Package Installation
# yum install ncurses-devel.x86_64
# wget http://www.erlang.org/download/otp_src_R16B01.tar.gz
# tar zxvf otp_src_R16B01.tar.gz 
# ./configure --prefix=/usr/local/erlang_R16B01 --enable-halfword-emulator --enable-m64-build
# make
# make instal
II. Rabbitmq 1. Installation Installation through yum
# rpm -Uvh http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# yum install rabbitmq-server-3.1.1-1.noarch.rpm
2. By installing source package wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.3/rabbitmq-server-generic-unix-3.1.3.tar.gz // free installation package, unzip it you can use three. rabbitmq-env environment configuration rabbitmq-defaults under configuration / usr / local / rabbitmq / sbin directory default parameter settings rabbitmqctl management tools rabbitmq-plugins plug-in management tools rabbitmq-server rabbitmq service # vim rabbitmq-defaults
SYS_PREFIX=${RABBITMQ_HOME}
ERL_DIR=/usr/local/erlang/bin/ //设置erl命令路径
CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq //设置rabbitmq运行参数
LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins //允许插件列表配置文件
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
The main configuration file 1. enabled_plugins: a list of plug-in settings allow the following format:
[rabbitmq_jsonrpc_channel,
rabbitmq_jsonrpc_channel_examples,
rabbitmq_management,
rabbitmq_management_visualiser,
rabbitmq_tracing].
2. rabbitmq.config: Set rabbitmq operating parameters. Structure for the hash array format. Such as
[
{mnesia, [{dump_log_write_threshold, 1000}]},
{rabbit, [{vm_memory_high_watermark, 0.4}]}
{rabbitmq_management,
[{listener, [{port, 55673},
{ip, "0.0.0.0"}
]}
]}
].
A few key parameters: tcp_listerners set the listening port rabbimq, the default is [5672]. disk_free_limit disk low watermark, if the disk capacity is below a specified value stop receiving data, the default value {mem_relative, 1.0}, i.e., the memory associated with the 1: 1, may be tailored to how much byte vm_memory_high_watermark, low water line memory is provided. If below the water line, the flow control mechanism is turned on, the default value is 40% 0.4, i.e., the total amount of memory. hipe_compile rabbimq part by High Performance Erlang compiler code is compiled, can improve the performance, which is an experimental parameter, if erlang vm segfaults, should be turned off. force_fine_statistics, this parameter belongs rabbimq_management, if true refinement statistics are carried out, but it can affect performance. /usr/local/etc/rabbitmq/rabbitmq.config [{auth_backends, [rabbit_auth_backend_internal]}, {auth_mechanisms, [ 'PLAIN', 'AMQPLAIN']}, {backing_queue_module, rabbit_variable_queue}, {cluster_nodes, []}, {collect_statistics , fine}, {collect_statistics_interval, 5000}, {default_permissions, [<< ". *" >>, << ". *" >>, << ". *" >>]}, {default_user, << "guest ">>}, {default_user_tags,
RABBITMQ_NODENAME=FZTEC-240088 节点名称
RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IP
RABBITMQ_NODE_PORT=5672 监听端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录
See more detailed configuration: http://www.rabbitmq.com/configure.html#configuration-file 4. Start
# /usr/local/rabbitmq/sbin/rabbitmq-server -detached
Four. Rabbitmq plug-in management rabbitmq web-enabled management plug
# ./rabbitmq-plugins enable rabbitmq_management
List all plug-ins
# ./rabbitmq-plugins list
Five. Rabbitmq expansion of installed php
# yum install librabbitmq-devel.x86_64 
# wget http://pecl.php.net/get/amqp-1.2.0.tgz
# tar zxvf amqp-1.2.0.tgz 
# cd amqp-1.2.0
# /usr/local/php/bin/phpize 
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp 
# make
# make install
# vim /usr/local/php/etc/php.ini 
extension=amqp.so
# /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf
Six. Php operation example 1. Create queue
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'10.31.247.202' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->setTimeout(1);
$conn->connect();
//创建exchange名称和类型
$channel = new AMQPChannel($conn);
$ex = new AMQPExchange($channel);
$ex->setName('ttlsa_exchange');
$ex->setType(AMQP_EX_TYPE_DIRECT);
$ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$ex->declare();
//创建queue名称,使用exchange,绑定routingkey
$q = new AMQPQueue($channel);
$q->setName('ttlsa_queue');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('ttlsa_exchange', 'ttlsa_routingkey');
//消息发布
$channel->startTransaction();
$message = json_encode(array('Hello World!','DIRECT'));
$ex->publish($message, 'ttlsa_routingkey');
$channel->commitTransaction();
$conn->disconnect();
?>
2. Obtain Queue Information
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'10.31.247.202' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//设置queue名称,使用exchange,绑定routingkey
$channel = new AMQPChannel($conn);
$q = new AMQPQueue($channel);
$q->setName('ttlsa_queue');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('ttlsa_exchange', 'ttlsa_routingkey'); 
//消息获取
$messages = $q->get(AMQP_AUTOACK) ;
if ($messages){
var_dump(json_decode($messages->getBody(), true ));
}
$conn->disconnect();
?>
After performing the following output: { "! Hello World" [0] => string (12) [1] => string (6) "DIRECT"} array (2) seven view Queue Information 1. See exchange information.
# /usr/local/rabbitmq/sbin/rabbitmqctl list_exchanges name type durable auto_delete arguments
Listing exchanges ...
direct true false []
amq.direct direct true false []
amq.fanout fanout true false []
amq.headers headers true false []
amq.match headers true false []
amq.rabbitmq.log topic true false []
amq.rabbitmq.trace topic true false []
amq.topic topic true false []
ttlsa_exchange direct true false []
...done.
2. Review the queue information
# /usr/local/rabbitmq/sbin/rabbitmqctl list_queues name durable auto_delete messages consumers memory 
Listing queues ...
ttlsa_queue true true 1 0 7244
...done.
3. Review binding information
# /usr/local/rabbitmq/sbin/rabbitmqctl list_bindings
Listing bindings ...
exchange ttlsa_queue queue ttlsa_queue []
ttlsa_exchange exchange ttlsa_queue queue ttlsa_routingkey []
...done.
VIII. Log Rotation
# /usr/local/rabbitmq/sbin/rabbitmqctl rotate_logs .1
Please indicate the source:  http://www.ttlsa.com/html/1656.html

Reproduced in: https: //my.oschina.net/766/blog/211471

Guess you like

Origin blog.csdn.net/weixin_34388207/article/details/91548412