Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 AmazonEC2上的RabbitMQ HA集群_Amazon Ec2_Rabbitmq - Fatal编程技术网

Amazon ec2 AmazonEC2上的RabbitMQ HA集群

Amazon ec2 AmazonEC2上的RabbitMQ HA集群,amazon-ec2,rabbitmq,Amazon Ec2,Rabbitmq,在Amazon VPC中,我在两个节点上安装了rabbitmq 在节点1上,我运行了以下命令 #Node 1 /etc/init.d/rabbitmq-server stop rabbitmq-server -detached rabbitmqctl start_app rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}' 在节点2上,我运行了以下命令来设置集群 /etc/init.d/rabbitmq-server sto

在Amazon VPC中,我在两个节点上安装了rabbitmq

在节点1上,我运行了以下命令

#Node 1
/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
在节点2上,我运行了以下命令来设置集群

/etc/init.d/rabbitmq-server stop
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@<PrivateIP>
rabbitmqctl start_app
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
/etc/init.d/rabbitmq-server-stop
rabbitmq服务器-已分离
rabbitmqctl停止应用程序
rabbitmqctl加入集群rabbit@
rabbitmqctl启动应用程序
rabbitmqctl集合_策略HA'^(?!amq\.).'''{“HA模式”:“所有”}
RabbitMQ节点位于弹性负载平衡器后面。我运行了一个java程序,不断将消息推送到rabbitmq中

案例1:rabbitmqctl list queues——当java程序将消息推送到队列时,quename和队列消息计数显示相同

案例2:我在节点2上停止rabbitmq,然后再次启动它。已检查群集状态和队列消息计数。消息计数正确(节点1和节点2上均为3330)

案例3:当java程序将消息推送到队列时,我停止了节点1上的rabbitmq。 我检查了节点2中的队列消息计数,计数为70。 我在节点1上启动rabbitmq,然后检查队列计数是否为75

我想设置一个rabbitmq高可用性集群并确保没有消息丢失。我在/etc/init.d/rabbitmq-server中启用了rabitmq start上的sync_队列

如果您能指出为什么邮件数量从大约3330下降到70,我们将不胜感激。以及设置和确保HA的最佳方法。

一些提示:

  • 您的应用程序是否使用publisher确认?如果你不想丢失消息,它应该
  • 是否启用队列的自动同步?如果没有,则必须手动启动任何队列的队列同步
  • 同步队列时不应重新启动任何节点,否则消息可能会丢失
一些提示:

  • 您的应用程序是否使用publisher确认?如果你不想丢失消息,它应该
  • 是否启用队列的自动同步?如果没有,则必须手动启动任何队列的队列同步
  • 同步队列时不应重新启动任何节点,否则消息可能会丢失
一些提示:

  • 您的应用程序是否使用publisher确认?如果你不想丢失消息,它应该
  • 是否启用队列的自动同步?如果没有,则必须手动启动任何队列的队列同步
  • 同步队列时不应重新启动任何节点,否则消息可能会丢失
一些提示:

  • 您的应用程序是否使用publisher确认?如果你不想丢失消息,它应该
  • 是否启用队列的自动同步?如果没有,则必须手动启动任何队列的队列同步
  • 同步队列时不应重新启动任何节点,否则消息可能会丢失

如果您不想丢失信息,您应该考虑使用tx transtaction

channel.txSelect();
channel.basicPublish("", youQueue, MessageProperties.PERSISTENT_TEXT_PLAIN,
message.getBytes());
channel.txCommit();
如果消息率很高,这可能会降低性能

拜访

如果您不想丢失信息,您应该考虑使用tx Transtraction

channel.txSelect();
channel.basicPublish("", youQueue, MessageProperties.PERSISTENT_TEXT_PLAIN,
message.getBytes());
channel.txCommit();
如果消息率很高,这可能会降低性能

拜访

如果您不想丢失信息,您应该考虑使用tx Transtraction

channel.txSelect();
channel.basicPublish("", youQueue, MessageProperties.PERSISTENT_TEXT_PLAIN,
message.getBytes());
channel.txCommit();
如果消息率很高,这可能会降低性能

拜访

如果您不想丢失信息,您应该考虑使用tx Transtraction

channel.txSelect();
channel.basicPublish("", youQueue, MessageProperties.PERSISTENT_TEXT_PLAIN,
message.getBytes());
channel.txCommit();
如果消息率很高,这可能会降低性能

拜访

是的。。该应用程序使用publisher确认。我已经为医管局制定了政策。我在/etc/init.d/rabbitmq-server脚本中添加了一个sync_queue命令,以便在服务器启动时同步队列。它现在开始工作了谢谢。。该应用程序使用publisher确认。我已经为医管局制定了政策。我在/etc/init.d/rabbitmq-server脚本中添加了一个sync_queue命令,以便在服务器启动时同步队列。它现在开始工作了谢谢。。该应用程序使用publisher确认。我已经为医管局制定了政策。我在/etc/init.d/rabbitmq-server脚本中添加了一个sync_queue命令,以便在服务器启动时同步队列。它现在开始工作了谢谢。。该应用程序使用publisher确认。我已经为医管局制定了政策。我在/etc/init.d/rabbitmq-server脚本中添加了一个sync_queue命令,以便在服务器启动时同步队列。它现在开始工作了谢谢