背景: 我正在为联合/分布式解决方案进行原型设计,该解决方案将使用Netty作为通信基础设施。
我知道我将不得不围绕Netty创建一些功能来实现我们所需要的功能,但我想了解Netty提供的功能,因此我不会重新发明轮子。
目标: 我需要提供一个通用的通信调度层,它将根据与之通信的目标端点自动选择适当的通信通道。
如果目标是本地的,我们希望在-vm中进行通信。如果它是远程的,我们计划在websockets上使用我们自己的二进制格式。我们会知道它是本地的还是远程的,所以这是创建/选择正确频道的问题。
我希望每个服务器实例都有某种频道缓存/地图。这将包括:
问题: 鉴于我们的目标,对于本地(in-vm)通信,我们应该:
使用LocalChannel与短路本地呼叫有很大的性能差异吗?如果我们可以在本地情况下消除编码/解码,那将是首选。
谢谢!
答案 0 :(得分:3)
我在以下multi player game server中使用了Jetlang和Netty进行in-vm消息传递。您可能需要查看UDP part of the code以查看我如何进行会话查找等。这似乎与您的用例类似。
EmbeddedChannel
用于测试目的。请查看jetserver的测试用例,看看它的使用示例。它不适合主流使用。
不确定如何不使用频道,所以我无法回答这个问题。