rabbit

热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop、Spark、Storm,以及新一代的数据采集和分析引擎Elasticsearch。
RabbitMQ
RabbitMQ是一个支持Advanced Message Queuing Protocol(AMQP)的开源消息队列实现,由Erlang编写,因以高性能、高可用以及可伸缩性出名。它支持多种客户端,如:Java、Python、PHP、.NET、Ruby、JavaScript等。它主要用于在分布式系统中存储和转发消息,方便组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP架构中有两个主要组件:Exchange和Queue,两者都在服务端,又称Broker,由RabbitMQ实现的。客户端通常有Producer和Consumer两种类型。

在使用RabbitMQ过程中需要注意的是,它将数据存储在Node中,默认情况为hostname。因此在使用docker run指令运行容器的时候,应该通过-h/–hostname参数指定每一个rabbitmq daemon运行的主机名。这样就可以轻松地管理和维护数据了:

$ docker run -d –hostname my-rabbit –name some-rabbit rabbitmq:3
3f28f6290e05375363ee661151170d37fbc89ada004c3235f02997b711b4cb2b

用户使用rabbitmqctl工具进行远程管理,或跨容器管理的时候,会需要设置持久化的cookie。这里可以使用RABBITMQ_ERLANG_COOKIE参数进行设置:

$ docker run -d –hostname my-rabbit –name some-rabbit -e RABBITMQ_ERLANG_COOKIE=’secret cookie here’ rabbitmq:3

使用cookie连接至一个独立的实例:
$ docker run -it –rm –link some-rabbit:my-rabbit -e RABBITMQ_ERLANG_COOKIE=’secret cookie here’ rabbitmq:3 bash
root@f2a2d3d27c75:/# rabbitmqctl -n rabbit@my-rabbit list_users
Listing users …
guest [administrator]

同样,用户也可以使用RABBITMQ_NODENAME简化指令:
$ docker run -it –rm –link some-rabbit:my-rabbit -e RABBITMQ_ERLANG_COOKIE=’secret cookie here’ -e RABBITMQ_NODENAME=rabbit@my-rabbit rabbitmq:3 bash

root@f2a2d3d27c75:/# rabbitmqctl list_users
Listing users …
guest [administrator]

默认情况下,rabbitmq会安装并启动一些管控插件,如rabbitmq:3-management。通常可以通过默认用户名密码以及标准管控端口15672访问这些插件:

$ docker run -d –hostname my-rabbit –name some-rabbit rabbitmq:3-management
用户可以通过浏览器访问http://container-ip:15672,如果需要从宿主机外访问,则使用8080端口:

$ docker run -d –hostname my-rabbit –name some-rabbit -p 8080:15672 rabbitmq:3-management

如果需要修改默认用户名与密码(guest:guest),则可以使用RABBITMQ_DEFAULT_USER和RABBITMQ_DEFAULT_PASS环境变量:

$ docker run -d –hostname my-rabbit –name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3-management

如果需要修改默认vhost,可以修改RABBITMQ_DEFAULT_VHOST环境变量:
$ docker run -d –hostname my-rabbit –name some-rabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost rabbitmq:3-management

然后连接至daemon:
$ docker run –name some-app –link some-rabbit:rabbit -d application-that-uses-rabbitmq

用户也可以访问官方镜像仓库,并对Dockerfile进行更多定制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值