背景:我正在设计一个联邦/分布式解决方案的原型,该解决方案将使用 Netty 作为通信基础设施。
我知道我将不得不围绕 Netty 创建一些功能来实现我们所需要的,但我想了解 Netty 提供了什么,所以我不会重新发明轮子。
目标:我需要提供一个通用的通信调度层,它将根据正在与之通信的目标端点自动选择适当的通信通道。
如果目标是本地的,我们要在-vm中进行通信。如果它是远程的,我们计划在 websockets 上使用我们自己的二进制格式。我们会知道它是本地的还是远程的,所以这是创建/选择正确频道的问题。
我希望每个服务器实例都有某种通道缓存/映射。这将包括:
- 1 个(虚拟机内)通道
- 0+ (websocket) 通道:每个服务器-服务器通道 1
问题:鉴于我们的目标,对于本地(虚拟机内)通信,我们是否应该:
- 使用本地频道?
- 使用嵌入式频道?- 不确定这是为了什么
- 不使用官方频道,直接通话和通话?
使用 LocalChannel 与短路本地呼叫有很大的性能差异吗?如果我们可以在本地情况下消除编码/解码,那将是首选。
谢谢!