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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

代码传送门

https://github.com/farsunset/netty-http-server

1.首先Springboot关闭Web功能

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第1张图片

2.NettyServer配置

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第2张图片

3实现IFunctionHandler 也就是SpirngMvc的Controller

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第3张图片

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

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第4张图片

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第5张图片

4 OK 我们来启动Spirngboot

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第6张图片

5 国际惯例 Hello world

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第7张图片

SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器_第8张图片

优点

1 netty使用多路复用技术大幅提升性能

2 减少web容器依赖,减少jar包体积

3 灵活配置简单,适合所有需要提供restful接口的微服务应用

4 完全按照springmvc的模式开发配置

缺点

1还没能做到和spirng DispatcherServlet那么强大到支持各种规则的path配置

2获取各种参数还需要在controller里面通过HttpRequest来获取,没有springmvc自动注入参数方便

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

转载于:https://my.oschina.net/u/1167637/blog/2986078

你可能感兴趣的:(SpringBoot项目中使用Netty替换Tomcat,Undertow等Web容器)