我们有一个处理消息的方法。 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢。 根据我们的实际情况的观察,如果出现了异常。 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持续报告异常。 所以在你的系统中有要捕获异常,并且进行正确的处理。
我们有一个处理消息的方法。 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢。 根据我们的实际情况的观察,如果出现了异常。 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持续报告异常。 所以在你的系统中有要捕获异常,并且进行正确的处理。
在使用 Spring AMQP 发送消息到 RabbitMQ 的时候收到错误信息: inequivalent arg 'x-queue-type' for queue 'com.ossez.real.estate' in vhost '/': received none but current is the value 'classic' of type 'longstr', class-id=50, method-id=10 上面的错误信息已经很明显了,说明的是发送消息的队列参数中少了 x-queue-type 这个参数。 在代码中,我们创建队列的参数为: return new Queue(MY_QUEUE_NAME, NON_DURABLE); 这直接创建队列的参数少了 args.put("x-queue-type", "classic"); 因此,我们需要在创建队列的时候添加上面的参数。 修改代码为: Map<String, Object> args = new HashMap<>(); // // set the queue with a dead letter feature args.put("x-queue-type", "classic"); return new Queue(MY_QUEUE_NAME, NON_DURABLE, false, false, args); 请参考 GitHub 中的代码: https://github.com/cwiki-us-demo/tutorials/blob/master/spring-amqp/src/main/java/com/baeldung/springamqp/simple/HelloWorldMessageApp.java
RabbitMQ 服务器在安装之前需要安装 erlang。 最新版本的 RabbitMQ 3.8.0 需要 Erlang 21.3 以上的版本支持。 在这里,我们需要在你的 CentOS 中安装 Erlang 21.3.8.8 版本。 下载地址和软件更新 Erlang 21.3.8.8 版本的下载地址,请参考链接: https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.8-1.el7.x86_64.rpm RabbitMQ 3.8.0 的下载地址,请参考链接:https://www.rabbitmq.com/install-rpm.html 使用登录上你的 CentOS 7 服务器后,首先需要查看你的服务器是否安装了 wget,如果没有安装 wget,请运行 yum install wget 进行安装。 yum install wget 当 wget 安装完成后,运行 yum update 来更新你的服务器。 安装 Erlang 首先你需要下载 Erlang ,然后进行安装,在上面提到的地址 https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.8-1.el7.x86_64.rpm 中的右侧有一个 wget 的地址。 你可以运行 wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.8-1.el7.x86_64.rpm/download.rpm 来进行下载。 当你下载到你的本地计算机后,运行命令 yum localinstall rabbitmq-server-3.8.0-1.el7.noarch.rpm 来安装你下载的 rpm 包。 当你安装完成后,你可以运行命令 erl -version 来查看你安装的 erl 版本。 在这里,你可以看到这显示的版本低 Erlang emulator 版本,与你下载的 Erlang 版本是不同的。 安装 RabbitMQ 运行下面的命令,将 RabbitMQ 下载到你服务器上。 wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm 当你下载完成后,你需要运行下面的命令来将 Key 导入。 rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc 使用 yum 进行本地安装,运行命令: yum localinstall rabbitmq-server-3.8.0-1.el7.noarch.rpm 当安装完成后,你可以使用命令来启动 rabbitmq 服务器: systemctl start rabbitmq-server RabbitMQ 防火墙配置 RabbitMQ 的运行需要一系列的端口。因此你需要配置你的防火墙将下面的端口打开。 如果你使用的是 firewalld,那么请依次执行下面的命令。 打开防火墙端口: firewall-cmd --zone=public --permanent --add-port=4369/tcp firewall-cmd --zone=public --permanent --add-port=25672/tcp firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp firewall-cmd --zone=public --permanent --add-port=15672/tcp firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp firewall-cmd --zone=public --permanent --add-port=1883/tcp firewall-cmd --zone=public --permanent --add-port=8883/tcp 将防火墙配置重新载入: firewall-cmd --reload 绝大部分情况,当你执行完上面的命令后,你的 RabbitMQ 应该能够正常访问了。 如果你的服务器还启用了 SELinux 的话,你还需要执行下面的命令来让让 RabbitMQ 服务器能够接收发送网络数据: setsebool -P nis_enabled 1 RabbitMQ 设置自动启动 在安装完成后,我们希望 RabbitMQ 能开机自动启动。 请执行下面的命令,来让 RabbitMQ 随着计算机开机后自动启动: systemctl enable rabbitmq-server 使用下面命令查看 RabbitMQ 的进程运行状态: systemctl status rabbitmq-server 根据服务器的不同,会有不同的输出,我们的输出如下,表示 RabbitMQ 目前是正在运行的。 [[email protected] yhu]# systemctl status rabbitmq-server ● rabbitmq-server.service - RabbitMQ broker Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2019-10-11 14:10:14 EDT; 9h ago Main PID: 14895 (beam.smp) Status: "Initialized" CGroup: /system.slice/rabbitmq-server.service ├─14895 /usr/lib64/erlang/erts-10.3.5.6/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/lib64/erlang -progn... ├─15123 /usr/lib64/erlang/erts-10.3.5.6/bin/epmd -daemon ├─15259 erl_child_setup 32768 ├─15280 inet_gethost 4 └─15281 inet_gethost 4 RabbitMQ 启用 Web 管理界面 在默认的情况下 RabbitMQ 的 Web 管理控制台是没有启用的,你需要通过下面的命令来进行启用。 安装 Web 管理界面的插件: rabbitmq-plugins enable rabbitmq_management 提供 RabbitMQ 用户和对用户使用的权限进行赋权: chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/ 分别执行下面的命令: rabbitmqctl add_user admin StrongPassword…
CloudAMQP 有多种账号级别,请参考下面的链接的内容访问你可以注册的级别:https://www.cloudamqp.com/plans.html 作为测试来说,你可以注册免费的的消息。 你可以选择免费的账号。 输入电子邮件 在注册界面中输入电子邮件后单击 Sign Up 来创建账号。 到邮箱中检查 当你输入电子邮件提交后,系统将会发送一个电子邮件到你提交的邮箱中。 你可以到你的电子邮箱中查看发过来的电子邮件。 系统提示电子邮件已经发送成功。 电子邮箱中收到的进行注册的电子邮件。 单击邮件中的链接进行注册。 创建一个账号 输入密码来在系统中创建账号 创建新的实例 你可以在账号创建成功的界面中开始创建新的实例。 然后你就可以在新创建的实例中开始进行消息测试了。 https://www.cwiki.us/display/RabbitMQZH/Sign+Up+Account+In+CloudAMQP