Celery就是一个用python写的并行分布式框架
Celery支持使用任务队列的方式在分布的机器、进程、线程上执行任务调度。
任务队列是一种在线程或机器间分发任务的机制。
消息队列的输入是工作的一个单元,称为任务,独立的职程(Worker)进程持续监视队列中是否有需要处理的新任务。
Celery 用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程,职程对消息进行处理:
RabbitMQ:第三方提供的消息中间件
centos7安装和设置RabbitMQ:
CentOS 7 下Erlang 20.2安装部署
YUM安装:
1.创建Yum源:
#创建yum源
sudo vi /etc/yum.repos.d/rabbitmq-erlang.repo
#文件内容
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
2.Erlang安装:
安装:
sudo yum install -y erlang
验证:
#进入erlang命令行表示成功
erl
CentOS 7 下RabbitMQ 3.7 安装与配置
参考:https://ken.io/note/centos7-rabbitmq-install-setup
RabbitMQ配置:
添加用户
sudo rabbitmqctl add_user admin 7410
设置用户角色:
sudo rabbitmqctl set_user_tags admin administrator
设置用户权限:
sudo rabbitmqctl set_permissions -p "/" admin '.*' '.*' '.*'
查看用户权限:
sudo rabbitmqctl list_user_permissions admin
配置用户远程访问
sudo vi /etc/rabbitmq/rabbitmq.config
[
{rabbit, [{tcp_listeners, [5672]}, {loopback_users, ["admin"]}]}
].
重启服务并开放端口:
重启服务:
sudo systemctl restart rabbitmq-server
开放端口:
#开放端口
sudo firewall-cmd --add-port=5672/tcp --permanent
#重新加载防火墙配置
sudo firewall-cmd --reload
RabbitMQ常用命令
# 添加用户
sudo rabbitmqctl add_user <username> <password>
# 删除用户
sudo rabbitmqctl delete_user <username>
# 修改用户密码
sudo rabbitmqctl change_password <username> <newpassword>
# 清除用户密码(该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证)
sudo rabbitmqctl clear_password <username>
# 设置用户tags(相当于角色,包含administrator,monitoring,policymaker,management)
sudo rabbitmqctl set_user_tags <username> <tag>
# 列出所有用户
sudo rabbitmqctl list_users
# 创建一个vhosts
sudo rabbitmqctl add_vhost <vhostpath>
# 删除一个vhosts
sudo rabbitmqctl delete_vhost <vhostpath>
# 列出vhosts
sudo rabbitmqctl list_vhosts [<vhostinfoitem> ...]
# 针对一个vhosts给用户赋予相关权限;
sudo rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
# 清除一个用户对vhosts的权限;
sudo rabbitmqctl clear_permissions [-p <vhostpath>] <username>
# 列出哪些用户可以访问该vhosts;
sudo rabbitmqctl list_permissions [-p <vhostpath>]
# 列出用户访问权限;
sudo rabbitmqctl list_user_permissions <username>
安装Redis:
yum install redis
启动Redis:
systemctl start redis.service
设置redis开机启动:
systemctl enable redis.service