共享快递柜业务场景实战(服务构建)
生活随笔
收集整理的這篇文章主要介紹了
共享快递柜业务场景实战(服务构建)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:?使用物聯網平臺,快速構建一個高性能的共享快遞柜業務
1.背景
當我們的設備和物聯網平臺建立mqtt連接通道后,會根據業務需求傳輸不同的數據。本次以共享快遞柜業務場景講解topic和payload的設計。
在共享快遞柜場景中,我們會涉及到C端用戶操作:
- 在App端掃碼,操作快遞存取,觸發后臺下發指令到當前機柜,執行相關操作。
- 用戶存取完畢,觸發訂單結算或其他操作
運營商后臺交互操作:
- 下行指令
- 開關快遞柜門
- 廣告的添加/刪除
- 設備數據處理
- 用戶取走快遞的消息的處理,訂單結算
- 用戶寄存的消息的處理,訂單結算
- 廣告播放的記錄存儲
2.設計方案
總體思路如下:
- 根據業務不同劃分不同topic,每個topic對應payload結構體。
- 當數據發送到物聯網平臺,我們通過規則引擎把數據分流到多個mq隊列、DB、時序數據庫等。
- 不同優先級隊列,DB分配不同計算資源,配置降級策略
2.1 上行數據邏輯
下圖展示了設備數據上行場景的劃分和后臺系統不同處理方式
2.2 下行控制指令
下圖展示了云端下行控制指令的來源和完整鏈路
3.通信Topic和Payload定義
按照以上分析,整理出在這個場景中的Topic和Payload細節參考表格,如下:
| NTP服務 | /ext/ntp/${pk}/${dn}/request | 發布 | { "deviceSendTime":"1000" } | 物聯網平臺提供 |
| /ext/ntp/${pk}/${dn}/response | 訂閱 | { "deviceSendTime":"1000", "serverRecvTime":"1543475763010", "serverSendTime":"1543475763020" } | 物聯網平臺提供 | |
| 定時上報 每5分鐘 | /${pk}/${dn}/user/bizheart/post | 發布 QoS=0 | { "battery":69, "devices":[0,1,0,0,0,1,0], "net":84 } | |
| 設備上報 指令響應 | /${pk}/${dn}/user/borrow | 發布QoS=1 | { "device":2 } | |
| 用戶上報 用戶開門觸發 | /${pk}/${dn}/user/return | 發布QoS=1 | { "device":2 } | |
| 開門指令 用戶App觸發->Server->IoT->機柜 | /${pk}/${dn}/user/pop | 訂閱QoS=1 | { "device":2 } | |
| 設備上報 開門是否響應 | /${pk}/${dn}/user/borrow | 發布QoS=1 | { "device":2 } | |
| 廣告播放 播放記錄 | /${pk}/${dn}/user/ad/play | 發布QoS=1 | { "adId":14323 } | |
| 添加廣告資源 | /${pk}/${dn}/user/ad/new | 訂閱 QoS=1 | { "adId":732124, "uri":"https://ad.com/732124" } | |
| 刪除廣告資源 | /${pk}/${dn}/user/ad/delete | 訂閱 QoS=1 | { "adId":32546 } | |
| 設備狀態變更 | /as/mqtt/status/${pk}/${dn} | { ? ? "status":"online/offline", ? ? "productKey":"pk13543", ? ?"deviceName":"dn1234", ? ? "lastTime":"2018-08-31 15:32:28.195", ? ? "clientIp":"123.123.123.123" } | 物聯網平臺提供 |
具體實現過程中,業務payload還會id用于實現消息去重邏輯。
至此,我們完成了IoT場景的需求梳理和業務協議設計。
參考信息:企業基于物聯網平臺最佳業務實現
相關云服務推薦:
1、阿里云物聯網平臺(企業版實例),萬臺設備接入低至9.5元/天
2、阿里云物聯網無線連接服務,套餐靈活,資費實惠,電信/移動/聯通智能選網
總結
以上是生活随笔為你收集整理的共享快递柜业务场景实战(服务构建)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进一步释放技术红利,阿里云推出全新内存增
- 下一篇: 超详解析Flutter渲染引擎|业务想创