Tomcat中如何使用netty的功能?

glgl2424 2014-04-18 08:52:17
最近学习了Netty,看到里面的文件下载的代码挺好,想把它利用到我的一个web服务中,这个web服务有一个下载页面,供用户下载一些帮助文档的,原先是用servlet作的下载功能,现在想切换成netty来实现,但是发现这完全没办法集成啊,主要有几个问题:
1、tomcat默认用了8080的端口,那我下载的请求自然是发到这个端口,可是netty需要绑定端口后才能开启监听,8080端口已经被tomcat绑定,难道让netty绑定其他端口?
2、假设我把netty绑定了其他端口,那我的请求要怎么发送到那个端口上?是在超链接中就写死?还是在servlet中再触发一次新端口的http请求?
3、netty的example中,启动都是通过main方法的,而我的项目都是通过spring注入bean的,那如何让nettyServer类在启动时就开启监听?本来打算是把sync()方法的调用放到构造函数里,这样spring在实例化bean的时候就能帮我开启监听,但这个方法是阻塞的,一旦spring调用了这个方法就会被阻塞,无法实例化后面的bean,这又是个头痛的问题

鉴于上面的这些问题,我很怀疑,是不是netty和tomcat就不应该继承在一起?tomcat作为web服务器,而netty通常是作为网络传输的服务器,基于我上面提供的应用场景,我是否可以认为应该部署2个服务,一个是tomcat服务,专门用于响应web请求,另一个是用netty实现的文件服务器,专门提供下载功能。这样就不需要考虑二者集成的问题了,但是如果这样的话,下载链接就会请求另一个端口,这样就跨域了,又该怎么办?

讲了这么多,关键还是不清楚一个网站,如何把网页的响应和下载的响应分割开,麻烦高手解答
...全文
13493 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghualeilei 2014-09-05
  • 打赏
  • 举报
回复
1. 无所谓 netty可以绑定在比如9527 你的请求发到8080某个servlet上 再在servlet里写netty客户端去请求9527 2. 可以在tomcat启动的时候写个listener 在listener里启动netty服务 不要在tomcat主线程启动 那样会锁死后面的操作 可以 new Thread() { 启动netty服务 }.start()
MiceRice 2014-05-13
  • 打赏
  • 举报
回复
引用 4 楼 glgl2424 的回复:
这个帖子发了好久了,都没人回答。
不是很经常泡着,如果你不是顶了又顶估计是肯定没看到的了。 如果有问题可以留言我,看到就会回复。
glgl2424 2014-05-08
  • 打赏
  • 举报
回复
引用 2 楼 glgl2424 的回复:
继续自己顶,各位大侠帮忙啊
非常感谢你的回答,的确解开了我的很多疑惑,其实的确没必要把二者揉在一起使用,只是我想练练手。 这个帖子发了好久了,都没人回答,太感谢你了,分数都给你,现在去结贴。
MiceRice 2014-05-06
  • 打赏
  • 举报
回复
1、tomcat默认用了8080的端口,那我下载的请求自然是发到这个端口,可是netty需要绑定端口后才能开启监听,8080端口已经被tomcat绑定,难道让netty绑定其他端口? —— 为啥不让Netty绑定到 80 去?或者把Tomcat换个其它端口,8080留给Netty? 2、假设我把netty绑定了其他端口,那我的请求要怎么发送到那个端口上?是在超链接中就写死?还是在servlet中再触发一次新端口的http请求? —— 如果有可能,直接错开域名和IP,网站就是 www.xxoo.com 图片就是 img.xxoo.com 下载就是 dl.xxoo.com —— 代理方式是:所有请求都先走Netty,该它处理的它处理,不该它处理的代理转发给Tomcat(注意是代理转发,不是重定向) —— 超链接中写死也行,不过就显得恶心点。 3、netty的example中,启动都是通过main方法的,而我的项目都是通过spring注入bean的,那如何让nettyServer类在启动时就开启监听?本来打算是把sync()方法的调用放到构造函数里,这样spring在实例化bean的时候就能帮我开启监听,但这个方法是阻塞的,一旦spring调用了这个方法就会被阻塞,无法实例化后面的bean,这又是个头痛的问题 —— 可以在main中初始化Spring容器。 补充:其实不是很建议在Tomcat中启动Netty,两者独立运行吧。 最后:如果真的只是为了下载点点资源,为啥不用Nginx或者Apache当前置机,负责处理所有静态资源访问和下载?
glgl2424 2014-05-04
  • 打赏
  • 举报
回复
继续自己顶,各位大侠帮忙啊
glgl2424 2014-04-21
  • 打赏
  • 举报
回复
自己帮顶,各位大侠帮忙啊

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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