使用 Rhiot 在几秒钟内构建物联网 AMQP 后端

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

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 端点。