建设网站优点,建一个网站的技术解决方案,昆山建设局网站首页,做网站时怎样图片上传怎么才能让图片不变形有什么插件吗前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。
简介 将事情推迟一段时间而不是立即去做#xff0c;可能被认为是懒惰的。事实上#xff0c;大多数情况下可能确实如此。然而#xff…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。
简介 将事情推迟一段时间而不是立即去做可能被认为是懒惰的。事实上大多数情况下可能确实如此。然而有时候这样做绝对是正确的。偶尔需要将耗时的工作推迟一段时间它需要被排队以便将来执行以便处理更重要的事情。为了实现这一点你需要一个代理一个接受来自各种发送方例如 Web 应用程序的消息例如作业、任务将它们排队并将它们分发给相关方即工作者以异步和按需地利用它们。
在这篇 DigitalOcean 文章中我们旨在向您介绍**RabbitMQ**项目一个开源的消息代理应用程序堆栈它实现了高级消息队列协议AMQP以处理我们上面解释的整个场景。
消息传递、消息代理和队列 消息传递是一种在进程、应用程序和服务器虚拟和物理之间交换特定数据的方式。这些交换的消息有助于满足某些工程需求可以包括从纯文本消息到二进制数据块的任何内容以满足不同的需求。为了使其工作需要由第三方程序中间件管理的接口… 欢迎消息代理。
消息代理通常是应用程序堆栈具有专门的部分来覆盖每个交换设置阶段。从接受消息到将其排队并将其传递给请求方代理处理本来可能会使用非专用解决方案或简单的黑客例如使用数据库、定时作业等更加繁琐的任务。它们通过处理队列来工作这些队列在技术上构成无限缓冲区用于放置消息并稍后弹出和传递给自动处理或轮询。
为什么使用它们 这些消息代理解决方案就像各种服务例如您的 Web 应用程序的中间人。它们可以通过将通常需要相当长时间来处理的任务委派给专门执行它们的第三方例如工作者从而大大减少 Web 应用程序服务器的负载和交付时间。当需要更多“有保证”的持久性来传递信息时它们也非常方便。
何时使用它们 总而言之上面解释的核心功能扩展到涵盖多个领域包括但不限于
允许 Web 服务器快速响应请求而不是被迫在现场执行资源密集型程序将消息分发给多个接收者以供消费例如处理让离线方即断开连接的用户在以后的某个时间获取数据而不是永久丢失为后端系统引入完全异步功能对任务进行排序和设置优先级在工作者之间平衡负载大大提高应用程序的可靠性和正常运行时间等等
RabbitMQ RabbitMQ 是市场上较受欢迎的消息代理解决方案之一以开源许可证Mozilla Public License v1.1提供作为高级消息队列协议的实现。它使用 Erlang 语言开发实际上相对容易使用和入门。它首次发布于 2007 年初自那以后一直在积极开发其最新版本为3.2.22013 年 12 月。
它是如何工作的 RabbitMQ 通过提供一个接口将消息发送方发布者与接收方消费者通过交换代理连接起来将数据分发到相关列表消息队列。
应用程序 交换 任务列表 工作者[数据] ------- [数据] --- [D][D][D][D] --- [数据]发布者 交换 队列 消费者它与其他解决方案有何不同 RabbitMQ与其他一些解决方案不同是一个完整的应用程序堆栈即消息代理。它为您提供了处理所需的所有工具而不是像框架一样让您自己实现。由于其极其受欢迎使用 RabbitMQ 并在线找到问题的答案非常容易。
高级消息队列协议AMQP简介 AMQP 是一个被广泛接受的开源标准用于从源到目的地分发和传输消息。作为协议和标准它为各种应用程序和消息代理中间件之间的互操作设置了一个共同的基础而不会遇到由单独设置的设计决策引起的问题。
安装 RabbitMQ RabbitMQ 软件包分发在 CentOS / RHEL 和 Ubuntu / Debian 系统上。然而就像大多数应用程序一样它们已经过时。因此获取 RabbitMQ 的推荐方式是在线下载软件包并手动安装。
**注意**由于各种原因我们将在全新创建的 VPS 上执行我们的安装并执行此处列出的操作。如果您正在为客户提供服务并且可能已经修改了系统为了不破坏任何正在运行的东西并避免遇到问题强烈建议您在新系统上尝试以下说明。
在 CentOS 6 / RHEL 系统上安装 在安装 RabbitMQ 之前我们需要先安装它的主要依赖项比如 Erlang。然而首先我们应该更新系统及其默认应用程序。
运行以下命令来更新我们的 droplet
yum -y update然后使用以下命令在我们的系统上安装 Erlang
# 添加并启用相关的应用程序仓库
# 注意我们还启用了第三方 remi 软件包仓库。
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm# 最后下载并安装 Erlang
yum install -y erlang安装完 Erlang 后我们可以继续安装 RabbitMQ
# 使用 wget 下载最新的 RabbitMQ 软件包
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.2/rabbitmq-server-3.2.2-1.noarch.rpm# 添加用于验证的必要密钥
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc# 使用 YUM 安装 .RPM 软件包
yum install rabbitmq-server-3.2.2-1.noarch.rpm在 Ubuntu 13 / Debian 7 系统上安装 由于我们希望使用更近期的版本因此在 Ubuntu 和 Debian 上下载和安装 RabbitMQ 的过程与 CentOS 类似。
让我们从更新系统的默认应用程序工具集开始
apt-get update
apt-get -y upgrade启用 RabbitMQ 应用程序仓库
echo deb http://www.rabbitmq.com/debian/ testing main /etc/apt/sources.list为软件包添加验证密钥
curl http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | sudo apt-key add -使用上述新添加的内容更新源
apt-get update最后下载并安装 RabbitMQ
sudo apt-get install rabbitmq-server为了在启动时管理最大连接数使用 nano 打开并编辑以下配置文件
sudo nano /etc/default/rabbitmq-server在保存并按下 CTRLX 然后输入 Y 退出之前取消注释 limit 行即删除 #。
管理 RabbitMQ 正如我们之前提到的RabbitMQ 非常容易上手。使用以下针对您的系统的说明您可以快速管理其进程并使其在系统启动时运行。
启用管理控制台 RabbitMQ 管理控制台 是可用的插件之一它允许您通过基于 Web 的图形用户界面GUI监视 [RabbitMQ] 服务器进程。
使用此控制台您可以
管理交换、队列、绑定、用户监视队列、消息速率、连接发送和接收消息监视 Erlang 进程、内存使用情况等等
要启用 RabbitMQ 管理控制台请运行以下命令
sudo rabbitmq-plugins enable rabbitmq_management启用控制台后可以使用您喜欢的 Web 浏览器访问 http://[您的 droplet 的 IP]:15672/。
默认用户名和密码都设置为“guest”以进行登录。
注意如果在运行服务后启用此控制台您需要重新启动服务以使更改生效。请参阅下面适用于您操作系统的相关管理部分。
在 CentOS / RHEL 系统上管理 安装应用程序后默认情况下 RabbitMQ 不会在系统启动时启动。
要使 RabbitMQ 默认作为守护程序启动请运行以下命令
chkconfig rabbitmq-server on要启动、停止、重新启动和检查应用程序状态请使用以下命令
# 启动服务
/sbin/service rabbitmq-server start# 停止服务
/sbin/service rabbitmq-server stop# 重新启动服务
/sbin/service rabbitmq-server restart# 检查状态
/sbin/service rabbitmq-server status在 Ubuntu / Debian 系统上管理 要在 Ubuntu 和 Debian 上启动、停止、重新启动和检查应用程序状态请使用以下命令
# 启动服务
service rabbitmq-server start# 停止服务
service rabbitmq-server stop# 重新启动服务
service rabbitmq-server restart# 检查状态
service rabbitmq-server status就是这样现在您在您的虚拟服务器上拥有自己的消息队列。
配置 RabbitMQ RabbitMQ 默认情况下以其标准配置运行。一般情况下只要一切正常运行它就不需要太多的调整。
要了解如何根据自定义需求进行配置请查看其配置文档。
提交者: O.S. Tezer