请问Netty适合做HTTP服务容器吗?

luo112cn 2015-02-02 11:07:27
现在有个项目需求,为了保证系统吞吐量,要求使用Netty做Http服务器,有几个需求要实现。
1.要实现路由功能,netty的http入口只有一个,简单来说就是实现路由功能,根据请求内容去实现具体的业务,相当于配多个action
2.实现https,这个netty本来就支持
3.实现webservice,这个就比较麻烦了,本人完全没有头绪

对于这些需求,有熟悉Netty的大神谈一下使用Netty来实现这种Http容器合适吗?
Netty实现Webservice有什么好的方案吗?
...全文
12069 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlesea 2018-11-22
  • 打赏
  • 举报
回复
3楼说的很正确。
正因为netty不是web server所以在很多场景下其性能比tomcat等webserver好。很多时候我们只需要一个基本的http server,不需要Servlet Jsp session等一大堆web server具备的功能,这时候就可以用netty,或者基于nginx开发插件?
如果没有高性能需求,选择web容器就是了……
rpgmakervx 2016-06-19
  • 打赏
  • 举报
回复
tomcat设置成NIO最大并发也超不过800,亲测。 不过用netty从头写一个类似tomcat的中间件,确实很头疼,如果商业用的话最好去找现成的不要造轮子了 当然如果你有极客精神,自己怨以实现一个,也是极好的! 我这几天在做一个类似tomcat的中间件(非商业,自己做着玩),光热部署这块做了四天(可能我太渣),这还不包括MVC,模板视图解析什么的。 顺便推荐一下我的项目 这个是模仿tomcat的 http://git.oschina.net/rpgmakervx/codecat 这个是模仿keepalived的中间件,可以监听tomcat等中间件并检测master是否亢机,ip切换到slave的功能 http://git.oschina.net/rpgmakervx/jeepalived 这个是用netty实现的代理中间件 http://git.oschina.net/rpgmakervx/jproxy
高境 2015-02-02
  • 打赏
  • 举报
回复
这种需求建议楼主用netty,原因如下: 1.tomcat比较适合j2ee开发,因为其完整的实现了Servlet和JSP规范 2.tomcat处理高并发请求性能不够好,比如需要使用NIO时必须要安装APR插件,确实比较麻烦。 3.netty是一个性能非常好的java NIO网络框架,我们已经在诸多大项目中使用并验证。 所以: 如果性能要求不高,则选用tomcat 开发上更易用 如果对性能有要求,选用netty,当然其在使用上要更麻烦,最直接的启停监控脚本得自己来弄。
luo112cn 2015-02-02
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
我不信这种需求用Netty做比用tomcat还好,更不要说和weblogic之类的商业软件比了。 不理解为啥用Netty,如果你是嵌入式设备,为了应用更轻那还可以理解,但是为了保证吞吐量而用Netty,我不信Netty的吞吐量能够做的比Ngix还高。
我也是觉得使用Netty的,一是不熟悉,二是感觉实现这些使用Tomcat就够了,现在Tomcat也支持NIO。但是也要给领导明确的理由 不知道对Netty实现Webservice接口您有什么好的想法啊?
rumlee 2015-02-02
  • 打赏
  • 举报
回复
我不信这种需求用Netty做比用tomcat还好,更不要说和weblogic之类的商业软件比了。 不理解为啥用Netty,如果你是嵌入式设备,为了应用更轻那还可以理解,但是为了保证吞吐量而用Netty,我不信Netty的吞吐量能够做的比Ngix还高。
cfm2000 2015-02-02
  • 打赏
  • 举报
回复
其实完全就不该把netty考虑成web容器,毕竟需要做太多事了,任何错误都有可能导致问题。几个人再怎么拼也不可能和一个公司几年的成果相抗衡的。 只能说你们的老大估计是被人忽悠了。
rumlee 2015-02-02
  • 打赏
  • 举报
回复
引用 3 楼 zgjzc 的回复:
这种需求建议楼主用netty,原因如下: 1.tomcat比较适合j2ee开发,因为其完整的实现了Servlet和JSP规范 2.tomcat处理高并发请求性能不够好,比如需要使用NIO时必须要安装APR插件,确实比较麻烦。 3.netty是一个性能非常好的java NIO网络框架,我们已经在诸多大项目中使用并验证。 所以: 如果性能要求不高,则选用tomcat 开发上更易用 如果对性能有要求,选用netty,当然其在使用上要更麻烦,最直接的启停监控脚本得自己来弄。
难道用netty自己开发一个web容器这么容易,我挺不理解。如果只是基于tcp/ip做一点小的网络通信,那可能比较容易实现。但是要实现完整的http协议,恐怕不是一件容易事,写的不好或许性能比tomcat差多了,否则tomcat为何应用那么广泛。 要说nio当然比bio性能高,但是基于nio的web容器也不是没有啊,为啥还要这样做。
luo112cn 2015-02-02
  • 打赏
  • 举报
回复
引用 3 楼 zgjzc 的回复:
这种需求建议楼主用netty,原因如下: 1.tomcat比较适合j2ee开发,因为其完整的实现了Servlet和JSP规范 2.tomcat处理高并发请求性能不够好,比如需要使用NIO时必须要安装APR插件,确实比较麻烦。 3.netty是一个性能非常好的java NIO网络框架,我们已经在诸多大项目中使用并验证。 所以: 如果性能要求不高,则选用tomcat 开发上更易用 如果对性能有要求,选用netty,当然其在使用上要更麻烦,最直接的启停监控脚本得自己来弄。
主要是实现这些功能有点困难,特别是Webservice SSL和路由功能还可以解决

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧