java - 将 Netty 异步任务处理为 http 请求的最佳方法是什么?
问题描述
我在构建物联网服务时遇到了一些问题。
我的架构如下图所示:
UserBrowser<------>WebServer<---->NettyServer<----->Client(IoT device, auto response)
这里 netty 服务器充当直通代理,将Userbrowser
消息和 Web 服务器消息转换为二进制流到远程 IoT 设备,然后 IoT 设备将一些消息返回给用户。
我用来在和RocketMQ
之间交流WebServer
NettyServer
我的问题是由于 UserBrowser 的 http 请求是同步操作,Netty 是异步架构,如何将 Netty 中的异步操作转换为同步 HTTP 请求?
我应该缓存请求并等待 IoT 的响应,然后返回吗?在这种情况下WebServer
是同步调用
或者我应该始终使用异步,UserBrowser 投票结果来自WebServer
?
解决方案
推荐阅读
- ios - 在 UILabel 的 draw#rect 中获取字形 boundingRect
- java - 重命名其中的文件夹和文件
- ruby-on-rails - 部署到 Heroku 时“找不到 Gemfile.lock 所需的 'bundler' (2.0.1)”
- post - 如何在主体作为数组返回的发布请求主体上断言
- firebase - firestore 安全规则 request.auth.uid == userId 不断返回“模拟读取被拒绝”
- drools - Drools 工作台:使用 Kie Server Java Client API 创建多个 kie 会话
- matlab - 当我尝试计算图像分割结果的准确性时,为什么输出为 0?
- nfc - 远程可写 NFC 标签
- django - 嵌套序列化器(深度/级别 3)
- android - “如何修复”在所有新的 android 设备上“总是返回 3”的 admob 横幅代码?