关于网友提出的“Nginx+Nodejs nginx+tomcat与netty优缺点”问题疑问,本网通过在网上对“Nginx+Nodejs nginx+tomcat与netty优缺点”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:Nginx+Nodejs nginx+tomcat与netty优缺点
描述:话说nginx是异步处理,放在tomcat的前端可以有效的做到负载均衡。netty也是目前开源的异步服务器开源框架。两者都是解决应用大并发处理的方式。二者优缺点在何在?诚恳征求大家意见。
解决方案1:完全没有必要拿Netty去整Http服务器,tomcat从7开始默认就是nio的,而且人家专门为http实现的,不比你自己写的好吗?自己造轮子很多时候是为了练习,用在项目里的东西是还是选业界成熟方案比较好,我有一个前辈高手,非常擅长自己造轮子,长连接服务器坚持自己用NIO写不用Netty,结果就是他的服务器一周会崩个两三次,而我用Netty的服务器可以跑一个月啥事情没有,但是比理论根基他比我牛逼多了,还是很崇拜他的
解决方案2: netty 对程序员要求太高太高,非常偏底层,不是淘宝级别的程序员很难搞定。全中国能搞定netty的程序员手拉手可以围起一个篮球场,而且是半场。
对HTTP,TCP协议要非常清楚,玩多线程要跟玩hello world一样熟悉才行。能把netty搞定,搞nginx二次开发,甚至自己开发nginx,就是小菜一碟。因为他和nginx是一个级别的。
你想想,全中国能玩转nginx的有几个人?那些编译下,配置下的不能叫玩nginx的,只能叫运维。就那么几个一线、二线公司的少数几个程序员能玩转,掰着手指头就能数过来。
解决方案3:受益,
解决方案4: 前者搞网页
后者搞xxx服务器
解决方案5: nginx是web服务器与apache一样,netty可以理解为一个java的异步编程框架,用它可以方便的进行网络编程,跟mima一样。
解决方案6:tomcat接触多,现在用的就是nginx+tomcat结构,netty没有了解过,话说tomcat群众基础很深厚的。
解决方案7: 我来给你解答。
我的架构最开始是 nginx + [netty (tcp) ...] 用nginx做负载均衡。后来分布式接口变成了http restful -> nginx + [netty(http) ...]
于是参考了netty的官方http例子,开始移植代码,其实移植量不大,只需要把原来的tpc handler里面的逻辑放到http handler里面就可以了。本以为ok了,测试才发现了大量的问题,其实问题本身是由于对http基础掌握的还不够透彻,比如keep-alive属性,这个平时基本不用的东西,当你要自己开发http server时,变的很有用,你不能每次都close channel.你要化很多时间了解header里面每个字段的意思,然后去实现它。再比如一个post请求,你要自己写代码从body里面读数据,解码等。
最终我放弃了netty,回到了tomcat.应为tomcat把http的一切都帮你搞定了。
最终的架构是 nginx + [tomcat(http) ...]
tomcat就是针对http层的,所以我建议http还是选择tomcat(或者其他成熟的http-server),并不是说netty不好,而是你的选择问题,netty是一个网络组件,tcp,udp,http都可以弄,但是官方文档都是些hello wolrd级别的。如果你非常了解http结构,完全可以基于netty搞出一个比tomcat牛的http server.
如果做tcp开发,netty不二之选!
以上介绍了“Nginx+Nodejs nginx+tomcat与netty优缺点”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2435149.html