Pre:
celery
+redis
经常会出现重复任务.
所以打算用rabbitmq
替换redis
.
下载与安装:
erlang:
1 | # 安装erlang |
rabbitmq:
1 | # 安装RabbitMQ |
1 | # 完成后启动服务: |
1 | # 激活开机启动命令 |
初始化配置:
创建配置文件:
1 | cd /etc/rabbitmq/ |
这里的意思是开放使用,rabbitmq默认创建的用户guest
,密码也是guest
,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。
用户设置:
1 | # 添加用户 |
1 | # 添加虚拟主机 |
1 | # 赋予用户权限 |
修改celery配置文件:
1 | CELERY_BROKER_URL = 'amqp://celery:celery@your_ip:5672/myvhost' |
修改配置文件后,就可以无缝接入rabbitmq
,成功替换掉redis
了.
总结:
只能说这个分布式队列的框架设计得特别好,把功能解耦开了,以至于在替换其中一个组件的时候,是如此的方便,无痛.
好的程序设计思想:高内聚,低耦合永不过时.
如果一开始贪快,没有设计好模块间的关系,初期可能感觉关系不大.
但是到了后期要拓展,要debug的时候,才会发现把模块解耦的巨大好处.
所以一开始的模块设计还是要花点心思的.多画画图,没什么坏处.