公司网站设计制作,山东网站制作团队,wordpress 数据库 类型,怎么做网约车一、RabbitMq简介1.1消息队列中间件简介消息队列中间件是分布式系统中重要的组件#xff0c;主要解决应用耦合#xff0c;异步消息#xff0c;流量削锋等问题实现高性能#xff0c;高可用#xff0c;可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全)#x… 一、RabbitMq简介1.1消息队列中间件简介消息队列中间件是分布式系统中重要的组件主要解决应用耦合异步消息流量削锋等问题实现高性能高可用可伸缩和最终一致性[架构] 使用较多的消息队列有 ActiveMQ(安全)RabbitMQZeroMQKafka(大数据)MetaMQRocketMQ以下介绍消息队列在实际应用中常用的使用场景异步处理应用解耦流量削锋和消息通讯四个场景 1.2什么是RabbitMQRabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。AMQP Advanced Message Queue高级消息队列协议。它是应用层协议的一个开放标准为面向消息的中间件设计基于此协议的客户端与消息中间件可传递消息并不受产品、开发语言等条件的限制。RabbitMQ 最初起源于金融系统用于在分布式系统中存储转发消息在易用性、扩展性、高可用性等方面表现不俗。具体特点包括 1.可靠性(Reliability)RabbitMQ 使用一些机制来保证可靠性如持久化、传输确认、发布确认。2.灵活的路由(Flexible Routing)在消息进入队列之前通过 Exchange 来路由消息的。对于典型的路由功能RabbitMQ已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能可以将多个Exchange 绑定在一起也通过插件机制实现自己的 Exchange 。 2.消息集群(Clustering)多个 RabbitMQ 服务器可以组成一个集群形成一个逻辑 Broker 3.高可用(Highly Available Queues)队列可以在集群中的机器上进行镜像使得在部分节点出问题的情况下队列仍然可用。 4.多种协议(Multi-protocol)RabbitMQ 支持多种消息队列协议比如 STOMP、MQTT 等等。 5.多语言客户端(Many Clients) RabbitMQ 几乎支持所有常用语言比如 Java、.NET、Ruby 等等。 6.管理界面(Management UI) RabbitMQ 提供了一个易用的用户界面使得用户可以监控和管理消息 Broker 的许多方面。 7.跟踪机制(Tracing) 如果消息异常RabbitMQ 提供了消息跟踪机制使用者可以找出发生了什么。 8.插件机制(Plugin System) RabbitMQ 提供了许多插件来从多方面进行扩展也可以编写自己的插件。 二、安装准备工具1.下载Eralng下面链接已提供otp_win64_20.2.exe链接 https://pan.baidu.com/s/1lmvCMPVAV1Ba9UogCdQpZg提取码x9m72.下载rabbitmq下面链接已提供rabbitmq-server-3.7.4.exe链接 https://pan.baidu.com/s/1CPfhg5X1e7UitpgMWIcAEg提取码h4r3 三、安装步骤(图文)1、安装erlang并配置环境变量1.1 双击otp_win64_20.2.exe点击next 1.3 配置环境变量新建系统变量名为ERLANG_HOME 变量值为erlang安装地址 ERLANG_HOME 路径E:\Program Files\erl9.2双击系统变量path点击“新建”将%ERLANG_HOME%\bin加入到path中。 %ERLANG_HOME%\bin1.4 验证erlang是否安装成功winR键输入cmd再输入erl看到erlang版本号就说明erlang安装成功了。 2、安装RabbitMQ 2.1 双击下载后的.exe文件安装过程与erlang的安装过程相同。2.2 安装RabbitMQ-Plugins打开命令行cd输入RabbitMQ的sbin目录。我的目录是 E:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin然后输入以下命令进行安装 rabbitmq-plugins enable rabbitmq_management2.3 验证rabbitmq是否安装成功输入 以下命令 rabbitmqctl status如果出现以下的图说明安装是成功的并且说明现在RabbitMQ Server已经启动了,运行正常 打开浏览器地址栏输入mq访问地址即可看到管理界面的登陆页 http://127.0.0.1:15672 四、安装过程中遇到的问题1、出现 Authentication failed (rejected by the remote node), please check the Erlang cookie如果改完cookie没生效重启一下电脑清除cookie缓存获取最新修改的cookie即可解决该问题 解决办法 比较下面两个文件夹下的.erlang.cookie文件内容后来修改其中一个文件的内容使两个文件内容一样。再次执行命令rabbitmqctl status成功 C:\Windows\System32\config\systemprofile\.erlang.cookie
C:\User\{{电脑用户名}}\.erlang.cookie2、报错Status of node rabbit … ** (ArgumentError) argument error (stdlib) 检查rabbitmq 服务的日志db、log 等文件夹的路径是否含有中文检查本机的用户名是否为中文(存在中文会出现下面的报错) 这个本机用户名要是英文 3、主机名原来为中文改为英文后执行rabbitmqctl status报错 * connected to epmd (port 4369) on DESKTOP-AJ0N…suggestion: start the node报错信息如下 epmd reports: node ‘rabbit’ not running at allno other nodes on DESKTOP-AJ0Nsuggestion: start the node 解决办法执行以下命令重新安装rabbit-mq rabbitmq-service remove
rabbitmq-service install
#如果上述命令不行,执行
rabbitmq-server start 4、报错start_error, failed_to_start_child, 原因rabbitmq和erlang版本不一致 rabbitmq和erlang版本对应关系如下 https://www.rabbitmq.com/which-erlang.html5、Distribution failed: {{:shutdown, {:failed_to_start_child, :net_kernel, {:EXIT, :nodistribution}}}, {:child, :undefined, :net_sup_dynamic, {:erl_distribution, :start_link, [[:rabbitmqcli67, :shortnames], false]}, :permanent, 1000, :supervisor, [:erl_distribution]}}检查rabbitmq 服务的日志db、log 等文件夹的路径是否含有中文检查本机的用户名是否为中文(存在中文会出现下面的报错)