起因:在实际项目开发过程中,需要使用RabbitMQ来实现消息队列的功能,但仅仅实现功能之后并不能对自己满足,既然学一次,就要更深的了解她,吃一吃架构方面的相关内容,提升自己。
RabbitMQ在镜像集群中,机器其实是平行关系,所有的节点都是互相复制的
场景描述:
A是Master
B是Slave
A正常运行,B宕机了,只需要启动B即可,B就会自动加入集群
A和B都宕机了,只要A在B之前启动就可以了
A和B都宕机了,A启动不起来了,即便是B启动了,有可以B直接启动不了啦
B和C都加入了A为Master的集群,这个时候都需要将B和C从A的集群中forget,B和C启动不起来了
RabbitMQv32版本以后提供了一个离线清除集群节点的命令参数,也就是节点无法启动状态下
HAProxy是一款提供高可用的负载均衡器(之前大家都是使用的Nginx居多,upstream反向代理实现负载均衡非常容易),HAProxy可以基于TCP四层(Lvs也是TCP四层的),> 在Mac电脑本机上安装了一个RabbitMq,并通过web管理界面远程访问。 紧接着在自己搭建的spring boot项目中,整合了RabbitMq,本地启动项目,发现控制台一直报错。。。如下图所示:
1、安装后的rabbitMq默认的账户:guest,密码:guest。查阅资料了解到这个账户不能用于项目连接rabiitMq-server;之后就创建了一个admin用户。
2、通过命令方式创建了amdin用户,分配administrator权限,重启rabbitMq服务,紧接着启动项目,结果还是报上面的错误。
3、明明已经分配了administrator权限了,为什么还是javanetConnectException: Connection refused (Connection refused);
4、怀疑是不是命令 *** 作有误等原因,紧接着登录rabbitMq web端,通过控制台方式创建admin账户,紧接着分配了administrator权限。
5、重启rabbitMq服务器,然后重启项目,发现还是一样的错误。
6、查看配置,发现yml配置文件中,有一个配置叫做virtualhost,在web控制台上发现也有这么一个配置。
7、配置了一个与项目中映射的一个名称。
8、重新启动项目,启动正常。
它现实了AMQP协议,并且遵循Mozilla Public License开源协议,它支持多种语言,可以方便的和spring集成
消息队列使用消息将应用程序连接起来,这些消息通过像RabbitMQ这样的消息代理服务器在应用程序之间路由
AMQP:advanced Message Queuing Protocol(高级消息队列协议)
2004年开发
从一开始就设计成为开发标准,以解决众多的消息队列需求和拓扑结构问题
凭借开放,任何人都可以执行这一标准,针对标准编码的任何人都可以和任意AMQP供应商提供的MQ服务器进行交互
兔子是行动非常迅速的动物而且繁殖起来也非常疯狂
(注:内容整理自《RabbitMQ实战》)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)