searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

RabbitMQ集群部署(三)——镜像集群模式部署及常见问题

2023-06-27 06:37:24
15
0

镜像集群模式与普通集群模式的主要区别在于. 无论queue的元数据还是queue中的消息都会同时存在与多个实例上.要开启镜像集群模式,需要在后台新增镜像集群模式策略. 即要求数据同步到所有的节点.也可以指定同步到指定数量的节点.

这种方式的好处就在于, 任何一个服务宕机了,都不会影响整个集群数据的完整性, 因为其他服务中都有queue的完整数据, 当进行消息消费的时候,连接其他的服务器节点一样也能获取到数据.

缺点:

(1): 性能开销大: 因为需要进行整个集群内部所有实例的数据同步

(2):无法线性扩容: 因为每一个服务器中都包含整个集群服务节点中的所有数据, 这样存储瓶颈会出现在每个节点存储上。

 

1、开启镜像同步,注意,该操作是针对vhost的,即如果有多个vhost,则需要配置多次

rabbitmqctl set_policy -p "/test_host" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'

rabbitmqctl set_policy -p "/" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'

 

 

 

rabbitmq部署中的常见的问题

1、如果是机器是第二次安装,则需要删除mnesia目录

rm -rf /var/lib/rabbitmq/mnesia

 

2、如果需要指定rabbitmq的端口地址、节点联通地址等,可以修改配置和添加对应环境变量

vi /etc/rabbitmq/rabbitmq.config

 

[

  {rabbit, [

    {tcp_listeners, [{

      # 监听客户端连接的端口号,默认5672

      "0.0.0.0", 28889}

    ]},

    {cluster_partition_handling, autoheal},

    {loopback_users, []}

  ]},

 

  {log_levels, [

    {connection, info}

  ]},

 

  {rabbitmq_management, [

    {listener, [

      # managenmet服务监听客户端连接的端口号,默认15672

      {port, 28890},

      {ip, "0.0.0.0"},

      {ssl, false}]}

  ]}

].

 

 

vi /etc/rabbitmq/rabbitmq-env.conf

 

#日志文件路径

RABBITMQ_LOG_BASE=/var/log/rabbitmq

#epmd端口地址,默认4369

export ERL_EPMD_PORT=28891

#RabbitMQ 节点内部通信的端口号,默认25672

RABBITMQ_DIST_PORT=28892

 

3、卸载流程

service rabbitmq-server stop

yum -y remove erlang-*

yum -y remove rabbitmq-server.noarch

rm -rf /var/lib/rabbitmq

rm -rf /user/lib/rabbitmq
0条评论
0 / 1000
芋泥麻薯
9文章数
1粉丝数
芋泥麻薯
9 文章 | 1 粉丝
原创

RabbitMQ集群部署(三)——镜像集群模式部署及常见问题

2023-06-27 06:37:24
15
0

镜像集群模式与普通集群模式的主要区别在于. 无论queue的元数据还是queue中的消息都会同时存在与多个实例上.要开启镜像集群模式,需要在后台新增镜像集群模式策略. 即要求数据同步到所有的节点.也可以指定同步到指定数量的节点.

这种方式的好处就在于, 任何一个服务宕机了,都不会影响整个集群数据的完整性, 因为其他服务中都有queue的完整数据, 当进行消息消费的时候,连接其他的服务器节点一样也能获取到数据.

缺点:

(1): 性能开销大: 因为需要进行整个集群内部所有实例的数据同步

(2):无法线性扩容: 因为每一个服务器中都包含整个集群服务节点中的所有数据, 这样存储瓶颈会出现在每个节点存储上。

 

1、开启镜像同步,注意,该操作是针对vhost的,即如果有多个vhost,则需要配置多次

rabbitmqctl set_policy -p "/test_host" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'

rabbitmqctl set_policy -p "/" ha-all "^" '{"ha-mode":"all", "ha-sync-mode":"automatic"}'

 

 

 

rabbitmq部署中的常见的问题

1、如果是机器是第二次安装,则需要删除mnesia目录

rm -rf /var/lib/rabbitmq/mnesia

 

2、如果需要指定rabbitmq的端口地址、节点联通地址等,可以修改配置和添加对应环境变量

vi /etc/rabbitmq/rabbitmq.config

 

[

  {rabbit, [

    {tcp_listeners, [{

      # 监听客户端连接的端口号,默认5672

      "0.0.0.0", 28889}

    ]},

    {cluster_partition_handling, autoheal},

    {loopback_users, []}

  ]},

 

  {log_levels, [

    {connection, info}

  ]},

 

  {rabbitmq_management, [

    {listener, [

      # managenmet服务监听客户端连接的端口号,默认15672

      {port, 28890},

      {ip, "0.0.0.0"},

      {ssl, false}]}

  ]}

].

 

 

vi /etc/rabbitmq/rabbitmq-env.conf

 

#日志文件路径

RABBITMQ_LOG_BASE=/var/log/rabbitmq

#epmd端口地址,默认4369

export ERL_EPMD_PORT=28891

#RabbitMQ 节点内部通信的端口号,默认25672

RABBITMQ_DIST_PORT=28892

 

3、卸载流程

service rabbitmq-server stop

yum -y remove erlang-*

yum -y remove rabbitmq-server.noarch

rm -rf /var/lib/rabbitmq

rm -rf /user/lib/rabbitmq
文章来自个人专栏
RabbitMQ
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0