博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第 5-1 课:EMQ X 的插件系统
阅读量:4148 次
发布时间:2019-05-25

本文共 640 字,大约阅读时间需要 2 分钟。

这一部分的课程,我们将学习如何通过编写 EMQ X 插件的方式来扩展 EMQ X 的功能。

Webhook 的局限性

在 IotHub 中我们使用了 EMQ X 的自带的 Webhook 插件,IotHub Server 通过使用 Webhook 插件来获取设备的上下线事件和 Publish 的数据,从开发和演示的功能的角度,这个插件是OK的,但是如果我们在生产环境中使用,你应该要注意到以下问题。

  • Webhook 缺乏对身份的校验,EMQ X 在 Post 到指定的 Webhook URL 的时候,没有带上任何的身份认证信息,所以 IotHub 没有办法知道消息是否真的来自 EMQ X。
  • 性能的损耗,在每次设备上下线,和 Publish 数据的时候,EMQ X 都会发起一个 HTTP 请求:建立连接、发送数据、再关闭连接,这部分的开销对 EMQ X 的性能有可见的影响,这还不是最糟的,在那些我们不关注的事件,比如设备订阅、设备取消订阅、送达等发生的时候 EMQ X 依然向 Webhook URL 发起一个请求,这完全是性能的浪费。
  • 健壮性,假设 IotHub 的 Web 服务因为某种原因宕机了,在修复好之前,EMQ X 获取的上行数据都会丢失掉。

这也就意味着,IotHub 需要一个定制化更强的 Hook 机制

  • 能够对消息和事件的提供者进行验证;
  • 只有在 IotHub 感兴趣的事件发生时,才触发 Hook 机制;
  • 用可持久化的队列来解耦消息和事件的提供者&#

转载地址:http://qiiti.baihongyu.com/

你可能感兴趣的文章
java并发包中Semaphore使用及源码分析
查看>>
线程池介绍和常用的线程池分析(一)
查看>>
线程池ThreadPoolExecutor源码分析(二)
查看>>
LockSupport工具使用和源码分析
查看>>
ArrayBlockingQueue源码分析
查看>>
java面试题整理(一)基础部分
查看>>
JAVA内存模型
查看>>
java当中集合框架整理
查看>>
Eclipse创建Maven Web项目
查看>>
常见的集合类容器(java)
查看>>
今天进行了cvte的一面,感觉特糟糕,对自己五星差评,以下为总结
查看>>
面试常考的常用数据结构与算法
查看>>
浅谈AVL树,红黑树,B树,B+树原理及应用
查看>>
java JVM的内存区域(运行时数据区域)
查看>>
SSH三大框架的工作原理及流程
查看>>
Spring工作原理及其作用
查看>>
request 获取各种路径
查看>>
深入分析volatile的实现原理
查看>>
TreeMap
查看>>
JVM实用参数系列
查看>>