AMQP 作为物联网网关和数据中心之间通信的首选协议而被广泛采用。如果您想快速创建可以立即为您的网关和设备准备就绪的 AMQP 后端服务, Rhiot 项目 的 Rhiot AMQP 快速入门 对您来说将非常有趣。
AMQP cloudlet quickstart 可以用作 fat-jar AMQP 微服务(又名 cloudlets )的基础。如果您想创建一个能够公开 AMQP 端点并处理基于 AMQP 的通信的简单后端应用程序,AMQT cloudlet quickstart 是开始您的开发工作的最佳方式。
创建并运行 AMQP cloudlet 项目
为了创建 AMQP cloudlet 项目,执行以下命令:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
要启动 AMQP cloudlet,请执行以下命令:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
这就是将 AMQP 消息代理公开给外部设备和网关所需的全部内容。
您还可以将其作为 Docker 映像构建和运行(我们喜欢 Docker 并强烈推荐这种方法):
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
AMQP 经纪人
默认情况下,AMQP cloudlet quickstart 在 5672 端口上启动嵌入式
ActiveMQ
AMQP 代理。如果您想将 cloudlet 应用程序连接到外部 ActiveMQ 代理(而不是启动嵌入式代理),请使用
BROKER_URL
环境变量或系统属性运行 cloudlet,例如:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
...或者...
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
示例聊天应用程序
AMQP cloudlet quickstart 实际上是一个简单的聊天应用程序。客户端可以通过订阅代理并将消息发送到聊天 AMQP 队列来将消息发送到
chat
频道。
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
客户端可以通过监听
chat-updates
AMQP 主题来订阅聊天更新——每当新消息被发送到聊天频道时,注册到
chat-updates
客户端将收到更新的聊天历史记录。
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
快速入门还公开了简单的 REST API,可用于使用 HTTP
GET
请求读取聊天记录:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
架构概述
当使用嵌入式 ActiveMQ 代理启动 AMQP cloudlet 时,示例的架构如下:
当您连接到外部 ActiveMQ 代理(使用
BROKER_URL
选项)时,示例的体系结构变得更像下图:
快速入门代码
您可能想知道需要多少代码才能利用所提供的 AMQP 功能。以下是我们的快速入门用于处理 AMQP 连接的所有代码:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
下面是用于启动前面提到的 REST API 的代码:
git clone git@github.com:rhiot/quickstarts.git
cp -r quickstarts/cloudlets/amqp amqp
cd amqp
mvn install
如您所见, Apache Camel 是 Rhiot 世界中的一等公民。为了使 Camel 连接更容易,Rhiot 带有静态 DSL 方法,如 EmbeddedActiveMqBrokerBootInitializer.amqpJmsBridge ,可用于轻松创建与快速入门使用的代理关联的 Camel 端点。