
----------------------------------------------------------------------RabbitMQ------------------------------------------------------------------------------ RabbitMQ是一个在AMQ基础上完整的,可复用的消息系统。-------------------遵循Mozilla Public License开源协议。 概念: Exchange:----------------消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue:-----------------绑定,它的作用就是把exchange和queue按照路由规则绑定起来。 Routing Key:-----------路由关键字,exchange根据这个关键字进行消息投递。 vhost:-------------------虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。 producer:--------------消息生产者,就是投递消息的程序。 consumer:--------------消息消费者,就是接受消息的程序。 channel:-----------------消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。 MQ:全称为Message Queue--------------消息队列(MQ)是一种应用程序的通信方法。 1:应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,无需专用链接来链接他们。 2:消息传递指的是:程序之间通过在--消息--中发送数据进行通信,而不是直接调用彼此来通信,直接调用通常是用于--:诸如诸如远程过程调用的技术。 3:排队指的是:应用程序通过队列来通信。 4:队列的使用除去了接收和发送同时执行放入要求。 安装: 安装配置epel源:---------------$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装erlang:--------------------$ yum -y install erlang 安装RabbitMQ:----------------$ yum -y install rabbitmq-server 注意:service rabbitmq-server start/stop 安装API: pip install pika//easy_install pika https://pypi.python.org/pypi/pika---------------------源码 --------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------RabbitMQ源码安装------------------------------------------------------------------------------- 官网地址:rabbitmq http://www.rabbitmq.com/releases/rabbitmq-server/ 官网地址:erlang http://erlang.org/download/ 一、概念: Broker:简单来说就是消息队列服务器实体。 Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。 Queue:消息队列载体,每个消息都会被投入到一个或多个队列。 Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。 Routing Key:路由关键字,exchange根据这个关键字进行消息投递。 vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。 producer:消息生产者,就是投递消息的程序。 consumer:消息消费者,就是接受消息的程序。 channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。 二、安装RabbitMQ CentOS: 1.先安装erlang # PS: 注意安装操作首先要切换到root工作环节中 # 在命令 如果$ 表示是普通用户, yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel yum -y install ncurses-devel yum install ncurses-devel wget http://erlang.org/download/otp_src_19.3.tar.gz tar -xzvf otp_src_19.3.tar.gz cd otp_src_19.3 ./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe make && make install 配置erlang环境 vi /etc/profile #在最后添加下文 PATH=$PATH:/usr/local/erlang/bin 使环境变量生效 source /etc/profile 测试一下是否安装成功,在控制台输入命令erl crt+z 退出 2.安装rabbitmq wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.8/rabbitmq-server-3.5.8.tar.gz tar -zxvf rabbitmq-server-3.5.8.tar.gz cd abbitmq-server-3.5.8 make make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install 配置erlang环境 vi /etc/profile #在最后添加下文 PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin 使环境变量生效 source /etc/profile 3. 启动:rabbitmq-server rabbitmq-server start 4. 检查服务启动状态 [root@node01 ~]# netstat -lnpt|grep beam tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN 19733/beam tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 19733/beam tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 19733/beam [root@node01 ~]# # 表示启动成功 三、管理命令 启动:rabbitmq-server start 关闭:rabbitmqctl stop 状态:rabbitmqctl status 四、插件 启动web管理插件 rabbitmq-plugins enable rabbitmq_management 如果报错 错误解决: Error: {cannot_write_enabled_plugins_file,"/etc/rabbitmq/enabled_plugins", enoent} mkdir /etc/rabbitmq 重新启动输入地址:localhost:15672,帐号默认为guest,密码guest,此帐号默认只能在本机访问。不建议打开远程访问。你可以创建一个帐户,并设置可以远程访问的角色进行访问。 如: rabbitmqctl add_user supery 123 # 创建用户supery rabbitmqctl set_user_tags supery administrator # 给创建的supery用户administrator角色 五、用户管理 默认的guest帐户相当于root帐户 rabbitmqctl add_user username password 添加帐户 rabbitmqctl change_password username newpassword 修改密码 rabbitmqctl delete_user username 删除帐户 rabbitmqctl list_users 列出所有帐户 rabbitmqctl set_user_tags User Tag 设置角色(administrator、monitoring、policymaker、management、其它) 立即生效,不需重启 六、创建配置文件 [root@node01 ~]# ll /etc/rabbitmq/ total 8 -rw-r--r-- 1 root root 23 Mar 5 10:07 enabled_plugins -rw-r--r-- 1 root root 51 Mar 5 10:12 rabbitmq.config [root@node01 ~]# cat /etc/rabbitmq/rabbitmq.config [{rabbit, [{loopback_users, ["root","supery"]}]}]. 操作步骤: vi /etc/rabbitmq/rabbitmq.config 将[{rabbit, [{loopback_users, ["root","supery"]}]}]. 复制到文件中即可 esc :x 保存并退出 七、重启rabbitmq-server并测试访问 rabbitmqctl stop rabbitmqctl start 浏览器访问 1. 查看自己的服务器ip地址 ifconfig # inet addr:172.24.129.3 ===> 服务器ip地址 2. 浏览器访问 http://39.104.109.159:15672 ===> 输入用户密码登录即可 登录成功!完成 -----------------------redis--------------- 关系型数据库: mysql oracle 非关系型数据库: NoSql redis 先有的memcache后有的redis-------------数据相对不安全 数据备份 下载:https://github.com/MicrosoftArchive/redis/releases redis-----------------有持久化 端口号:6379 优点:访问速度快 缺点:存储在缓存不够安全。 请求---------------数据库------------返回 放入到缓存 求求--------------缓存---------------数据库 redis: key:value name:"yuan" name:[] name:{"":""} name:{} name:12 memcache: 集群 key:value --------value只能是字符串
https://www.cnblogs.com/pyyu/p/10318053.html
=======
rabbitmq-server服务端
1.下载centos源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
2.下载epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
3.清空yum缓存并且生成新的yum缓存
yum clean all
yum makecache
4.安装erlang
$ yum -y install erlang
5.安装RabbitMQ
$ yum -y install rabbitmq-server
6.启动(无用户名密码):
systemctl start/stop/restart/status rabbitmq-server
设置rabbitmq账号密码,以及角色权限设置
# 设置新用户yugo 密码123
sudo rabbitmqctl add_user yugo 123
# 设置用户为administrator角色
sudo rabbitmqctl set_user_tags yugo administrator
# 设置权限,允许对所有的队列都有权限
对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
sudo rabbitmqctl set_permissions -p "/" yugo ".*" ".*" ".*"
#重启服务生效设置
service rabbitmq-server start/stop/restart
rabbitmq相关命令
// 新建用户
rabbitmqctl add_user {用户名} {密码}
// 设置权限
rabbitmqctl set_user_tags {用户名} {权限}
// 查看用户列表
rabbitmqctl list_users
// 为用户授权
添加 Virtual Hosts :
rabbitmqctl add_vhost <vhost>
// 删除用户
rabbitmqctl delete_user Username
// 修改用户的密码
rabbitmqctl change_password Username Newpassword
// 删除 Virtual Hosts :
rabbitmqctl delete_vhost <vhost>
// 添加 Users :
rabbitmqctl add_user <username> <password>
rabbitmqctl set_user_tags <username> <tag> ...
rabbitmqctl set_permissions [-p <vhost>] <user> <conf> <write> <read>
// 删除 Users :
delete_user <username>
// 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p vhost1 user1 '.*' '.*' '.*'
// 查看权限
rabbitmqctl list_user_permissions user1
rabbitmqctl list_permissions -p vhost1
// 清除权限
rabbitmqctl clear_permissions [-p VHostPath] User
//清空队列步骤
rabbitmqctl reset
需要提前关闭应用rabbitmqctl stop_app ,
然后再清空队列,启动应用
rabbitmqctl start_app
此时查看队列rabbitmqctl list_queues
查看所有的exchange: rabbitmqctl list_exchanges
查看所有的queue: rabbitmqctl list_queues
查看所有的用户: rabbitmqctl list_users
查看所有的绑定(exchange和queue的绑定信息): rabbitmqctl list_bindings
查看消息确认信息:
rabbitmqctl list_queues name messages_ready messages_unacknowledged
查看RabbitMQ状态,包括版本号等信息:rabbitmqctl status
#开启web界面rabbitmq
rabbitmq-plugins enable rabbitmq_management
#访问web界面
http://server-name:15672/
===============================================
rabbitmq 源码安装
官网地址:rabbitmq
http://www.rabbitmq.com/releases/rabbitmq-server/
官网地址:erlang
http://erlang.org/download/
一、概念:
Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
二、安装RabbitMQ
CentOS:
1.先安装erlang
# PS: 注意安装操作首先要切换到root工作环节中
# 在命令 如果$ 表示是普通用户,
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
yum -y install ncurses-devel
yum install ncurses-devel
wget http://erlang.org/download/otp_src_19.3.tar.gz
tar -xzvf otp_src_19.3.tar.gz
cd otp_src_19.3
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe
make && make install
配置erlang环境
vi /etc/profile #在最后添加下文
PATH=$PATH:/usr/local/erlang/bin
使环境变量生效
source /etc/profile
测试一下是否安装成功,在控制台输入命令erl
crt+z 退出
2.安装rabbitmq
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.8/rabbitmq-server-3.5.8.tar.gz
tar -zxvf rabbitmq-server-3.5.8.tar.gz
cd abbitmq-server-3.5.8
make
make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install
配置erlang环境
vi /etc/profile #在最后添加下文
PATH=$PATH:/usr/local/erlang/bin:/usr/local/rabbitmq/sbin
使环境变量生效
source /etc/profile
3. 启动:rabbitmq-server
rabbitmq-server start
4. 检查服务启动状态
[root@node01 ~]# netstat -lnpt|grep beam
tcp 0 0 0.0.0.0:5672 0.0.0.0:* LISTEN 19733/beam
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 19733/beam
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 19733/beam
[root@node01 ~]#
# 表示启动成功
三、管理命令
启动:rabbitmq-server start
关闭:rabbitmqctl stop
状态:rabbitmqctl status
四、插件
启动web管理插件
rabbitmq-plugins enable rabbitmq_management
如果报错
错误解决:
Error: {cannot_write_enabled_plugins_file,"/etc/rabbitmq/enabled_plugins", enoent}
mkdir /etc/rabbitmq
重新启动输入地址:localhost:15672,帐号默认为guest,密码guest,此帐号默认只能在本机访问。不建议打开远程访问。你可以创建一个帐户,并设置可以远程访问的角色进行访问。
如:
rabbitmqctl add_user supery 123 # 创建用户supery
rabbitmqctl set_user_tags supery administrator # 给创建的supery用户administrator角色
五、用户管理
默认的guest帐户相当于root帐户
rabbitmqctl add_user username password 添加帐户
rabbitmqctl change_password username newpassword 修改密码
rabbitmqctl delete_user username 删除
帐户
rabbitmqctl list_users 列出所有帐户
rabbitmqctl set_user_tags User Tag 设置角色(administrator、monitoring、policymaker、management、其它)
立即生效,不需重启
六、创建配置文件
[root@node01 ~]# ll /etc/rabbitmq/
total 8
-rw-r--r-- 1 root root 23 Mar 5 10:07 enabled_plugins
-rw-r--r-- 1 root root 51 Mar 5 10:12 rabbitmq.config
[root@node01 ~]# cat /etc/rabbitmq/rabbitmq.config
[{rabbit, [{loopback_users, ["root","supery"]}]}].
操作步骤:
vi /etc/rabbitmq/rabbitmq.config
将[{rabbit, [{loopback_users, ["root","supery"]}]}]. 复制到文件中即可
esc
:x 保存并退出
七、重启rabbitmq-server并测试访问
rabbitmqctl stop
rabbitmqctl start
浏览器访问
1. 查看自己的服务器ip地址
ifconfig
# inet addr:172.24.129.3 ===> 服务器ip地址
2. 浏览器访问
http://39.104.109.159:15672 ===> 输入用户密码登录即可
登录成功!完成