SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器

3,244 阅读1分钟

目前工作中负责一个独立微服务系统,使用了Spirngboot构建,有一个定时任务系统会通过http每隔10秒的频率请求这个系统,为了使微服务系统更加轻量级,提高性能,所以打算移除SpringMvc相关组件以及Tomcat,Jetty,Undertow等Web容器,使用Netty构建HttpServer来实现轻量级的RestfulAPIs。先看图:

1.首先Springboot关闭Web功能

image.png

2.NettyServer配置

image.png

3实现IFunctionHandler 也就是SpirngMvc的Controller

image.png
当然也支持 path和requestboyd传递参数的方式,分别如下
image.png

image.png

4 OK 我们来启动Spirngboot

image.png

5 国际惯例 Hello world

image.png

image.png

优点 1 netty使用多路复用技术大幅提升性能 2 减少web容器依赖,减少jar包体积 3 灵活配置简单,适合所有需要提供restful接口的微服务应用 4 完全按照springmvc的模式开发配置

缺点 1还没能做到和spirng DispatcherServlet那么强大到支持各种规则的path配置 2获取各种参数还需要在controller里面通过HttpRequest来获取,没有springmvc自动注入参数方便

有问题欢迎随时去Github反馈 Thanks

OK最后代码传送门 github.com/farsunset/n…