V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rapperx2
V2EX  ›  Java

Netty 集群怎么实现消息下发并回调

  •  
  •   rapperx2 · 2022-01-10 16:45:07 +08:00 · 1565 次点击
    这是一个创建于 808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前遇到的场景是一个 IOT 设备,用户需要向设备端下发查询命令,然后返回查询数据给用户。

    目前我想的是,广播消息给服务端,然后找到设备端连的哪个台服务器,然后下发指令。但是这个过程不知道用什么方式回调给用户。 麻烦各位大佬指教指教

    3 条回复    2022-01-19 10:49:59 +08:00
    linbiaye
        1
    linbiaye  
       2022-01-11 00:01:21 +08:00
    每个消息给一个唯一 id ,客户端响应指令以后,带上 id 回调结果
    chenny3
        2
    chenny3  
       2022-01-15 20:30:57 +08:00
    IOT 可以考虑使用 mqtt 协议。每个 device 都有唯一的 id ,给指定 id 的设备发送消息即可。
    huang119412
        3
    huang119412  
       2022-01-19 10:49:59 +08:00
    "广播消息给服务端,然后找到设备端连的哪个台服务器", 这可以发送执行命令,回调其实也没什么问题,那同步查询呢? TCP 是有状态服务,简单点只需要维护 machineId<=>channel ,和 machineId->serviceId 这两个关系,就能知道某台机器在哪台服务器上,前者只需要 chm 就行了,后者就需要 redis 之类全局通信组件了。netty 的事件机制,也不需要特别复杂的双写一致。分析一下回调,如果回调是 http(无状态),则没什么问题。可以加路由 http 服务器专门转发用户机器请求,架构就是 用户<=>业务服务器 http<=>路由服务器 http<=>TCP 服务器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1004 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:18 · PVG 06:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.