docker-compose部署rabbitmq关键配置点
  yOv7RJTY8jwl 2023年11月13日 22 0

部署关键配置点


单一模式即单机情况不做集群,就单独运行一个rabbitmq而已。

普通模式默认模式,以两个节点(rabbit01、rabbit02)为例来进行说明。对于Queue来说,消息实体只存在于其中一个节点rabbit01(或者rabbit02),rabbit01和rabbit02两个节点仅有相同的元数据,即队列的结构。当消息进入rabbit01节点的Queue后,consumer从rabbit02节点消费时,RabbitMQ会临时在rabbit01、rabbit02间进行消息传输,把A中的消息实体取出并经过B发送给consumer。所以consumer应尽量连接每一个节点,从中取消息。即对于同一个逻辑队列,要在多个节点建立物理Queue。否则无论consumer连rabbit01或rabbit02,出口总在rabbit01,会产生瓶颈。当rabbit01节点故障后,rabbit02节点无法取到rabbit01节点中还未消费的消息实体。如果做了消息持久化,那么得等rabbit01节点恢复,然后才可被消费;如果没有持久化的话,就会产生消息丢失的现象。

镜像模式把需要的队列做成镜像队列,存在与多个节点属于RabbitMQ的HA方案。该模式解决了普通模式中的问题,其实质和普通模式不同之处在于,消息实体会主动在镜像节点间同步,而不是在客户端取数据时临时拉取。该模式带来的副作用也很明显,除了降低系统性能外,如果镜像队列数量过多,加之大量的消息进入,集群内部的网络带宽将会被这种同步通讯大大消耗掉。所以在对可靠性要求较高的场合中适用。


用户登录失败解决方法:

进入rabbitmq安装目录sbin下,设置新用户并授权:

1、rabbitmqctl add_user admin 123456 #用户名admin,密码123456,可随意设置

2、rabbitmqctl set_user_tags admin administrator #设置用户最高操作权限

节点1的yml:

[root@test1 rabbitmq]# cat docker-compose.yml

version: '3'

services:

  rabbit1:

  image: rabbitmq:3.10.1-management

  container_name: rabbit1

  hostname: rabbit1

  restart: always

  ports:

    - 4369:4369

    - 5672:5672

    - 15672:15672

    - 15674:15674

    - 25672:25672

    - 35197:35197

  volumes:

    - /data/rabbitmq:/var/lib/rabbitmq

    - /etc/localtime:/etc/localtime

  environment:

    - RABBITMQ_DEFAULT_USER=admin

    - RABBITMQ_DEFAULT_PASS=Jthl0901

    - RABBITMQ_ERLANG_COOKIE='SECERLANGCOOKIE'


  extra_hosts:

    - "rabbit2:192.168.100.97"            # 不能加入自己,否则会一直重启

    - "rabbit3:192.168.100.98"

节点2的yml:

[root@test2 rabbitmq]# cat docker-compose.yml

version: '3'

services:

  rabbit2:

  image: rabbitmq:3.10.1-management

  container_name: rabbit2

  hostname: rabbit2

  restart: always

  ports:

    - 4369:4369

    - 5672:5672

    - 15672:15672

    - 15674:15674

    - 25672:25672

    - 35197:35197

  volumes:

    - /data/rabbitmq:/var/lib/rabbitmq

    - /etc/localtime:/etc/localtime

  environment:

    - RABBITMQ_ERLANG_COOKIE='SECERLANGCOOKIE'

    - RABBITMQ_DEFAULT_VHOST=/

    - RABBITMQ_LOGS=/var/lib/rabbitmq/rabbitmq.log


  extra_hosts:

    - "rabbit1:192.168.100.96"

    - "rabbit3:192.168.100.98"


节点3的yml:

[root@test3 rabbitmq]# cat docker-compose.yml

version: '3'

services:

  rabbit3:

  image: rabbitmq:3.10.1-management

  container_name: rabbit3

  hostname: rabbit3

  ports:

    - 4369:4369

    - 5672:5672

    - 15672:15672

    - 15674:15674

    - 25672:25672

    - 35197:35197

  volumes:

    - /data/rabbitmq:/var/lib/rabbitmq

    - /etc/localtime:/etc/localtime

  environment:

    - RABBITMQ_ERLANG_COOKIE='SECERLANGCOOKIE'

    - RABBITMQ_DEFAULT_VHOST=/

    - RABBITMQ_LOGS=/var/lib/rabbitmq/rabbitmq.log


  extra_hosts:

    - "rabbit1:192.168.100.96"

    - "rabbit2:192.168.100.97"


分别登录节点2节点3,分别加入到集群中:

节点2:

docker exec -it rabbit2 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@rabbit1

rabbitmqctl start_app

节点3:

docker exec -it rabbit3 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster rabbit@rabbit1

rabbitmqctl start_app

docker-compose部署rabbitmq关键配置点_bash

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  wwLZeziuqjLR   2023年12月11日   31   0   0 Dockercentos
  MCWYWqSAMsot   2023年12月11日   33   0   0 Docker
  DnoStTHsc0vp   2023年12月11日   25   0   0 Docker
  wwLZeziuqjLR   2023年12月08日   100   0   0 Dockercentosbash