我可能错了,但据我所知,整个Reactive/Event Loop的概念,尤其是Netty,都是为解决C10K+问题而发明的。这种做法有明显的缺点,因为你所有的代码都变成了Async,代码中充满了丑陋的回调函数和无意义的堆栈跟踪,因此难以维护和理解。
Go语言通过goroutines提供了一种解决方案,现在他们可以编写Sync代码并处理C10K+问题。所以现在Java推出Loom,本质上复制了Go的解决方案,我们很快就会拥有Fibers和Continuations,然后可以再次编写Sync代码。
因此,问题来了:
当Loom投入生产时,它不会让Netty变得有点过时吗?
如果我们在Java中使用Fibers和Continuations,能否编写好的Sync代码,并解决C10K+问题而无需使用Netty?
在Loom正式发布后,编写异步代码并使用Netty是否有性能上的优势或解决了C10K+问题?
我了解到Netty不仅仅是一个反应式/事件循环框架,它还拥有各种协议的编解码器,在实现中也会有所帮助。