我可能错了,但据我所知,整个Reactive/Event Loop 的事情,尤其是Netty,是为了解决C10K+问题而发明的。它有明显的缺点,因为您的所有代码现在都变成了Async,带有丑陋的回调,无意义的堆栈跟踪,因此难以维护和推理。
带有 goroutines 的Go语言是一个解决方案,现在他们可以编写Sync代码并处理C10K+。所以现在Java提出了Loom,它基本上复制了Go的解决方案,很快我们将拥有Fibers和Continuations,并且将能够再次编写Sync代码。
所以问题是:
当Loom投入生产时,是不是让Netty有点过时了?
如果我们在Java 中有Fibers和Continuations,我们能写出漂亮的Sync代码并且在没有Netty 的情况下使用C10K+吗?
在Loom 的生产版本发布后,在编写Async代码和使用Netty方面,对于性能或解决C10K+是否有任何优势?
我知道Netty不仅仅是Reactive/Event Loop框架,它还拥有各种协议的所有编解码器,这些实现无论如何都会有用,即使在之后也是如此。
$ git pull
git存储库上运行命令.$ git pull
我需要这个信息:
remote: Enumerating objects: 2866, done.
remote: Counting objects: 100% (2866/2866), done.
remote: Total 4840 (delta 2865), reused 2865 (delta 2865), pack-reused 1974
Receiving objects: 100% (4840/4840), 7.51 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (3810/3810), completed with 531 local objects.
From https://github.com/erlang/otp
76da23bb4e..6053c0e4d7 master -> origin/master
77cff66931..39968f062e maint -> origin/maint
934f9974eb..f30b1052c7 maint-21 -> origin/maint-21
* [new tag] OTP-21.2.6 -> OTP-21.2.6
* [new tag] OTP-20.3.2.1 -> OTP-20.3.2.1 …
Run Code Online (Sandbox Code Playgroud)