8
Applying RxJava to Existing Applications at Philly ETE 2015 // Speaker Deck (speakerdeck.com)
IngramChen 積分 1

看完了,結論是 RxJava + Netty 大約比 tomcat 兩倍好 - 即 latency 在 650/s 時差不多,超過後 tomcat 才惡化,所以對 1000/s 的需求,tomcat 要多部署一台。

老實說我覺得不值得啊,才省一半機器,server code 整個 style/API 都換掉,stacktrace 糟到不能 debug。而且 RxJava + Netty 改善的效率可能都是來自 Netty,而不是從 async 獲得的。如果改成 sync style + Netty 搞不好效能就差不多了。

haocheng 積分 0

我不確定只換 Netty 差多少,要看他們當初有沒有做測試,不過以 Netflix 開幾百幾千台 EC2 的規模,能夠省一半機器的優化應該值得吧

IngramChen 積分 0

他們如果找到幾個 bottle neck ,解決那些點後得到兩倍效能提升,這叫做優化沒錯。但他們這個算整個重寫了 (因為所有 touch 到的所有 source code 都要改成 obsevable,而且通通包在 lambda)。而 test 也要全重寫成 async style 更是吐血...

netflix 的經驗當然值得參考,他們也真的得到改進。但是我的點在我能不能用? 大部份機構該不該用? 講白一點,這 rxjava 的 cp 值對大部份開發者來說是高還是低 ? 看了他們的結果我覺得 cp 值低。

haocheng 積分 0

欸,其實就算是重寫,我也不確定要怎麼樣才能提升到兩倍效能...

我猜或許要先決定程式是 sync 還是 async 為主?如果大部分 db/network 呼叫都是 sync,這樣改寫的意義就不大。如果全部程式都是 async,那用 rxjava 應該會比原本的 Future/callback 要好寫