一个基于 JFinal 的微服务框架,SpringCloud 之外的另一个选择,已经使用在用户量过亿的商业产品上,目前有超过 1000 家公司在使用 Jboot 做极速开发
http://jboot.io/started/#hello-world
Jboot 来开发一个 java web 的基本技能,包含了
- MVC
- ORM
- AOP
- 代码生成器
- 使用缓存提高性能
Jboot 真正的核心是做微服务的开发,微服务的底层代码是分布式调用RPC,RPC 的框架和实现的方案非常繁杂,不过 Jboot 已经支持了主流 RPC 的实现,其中包含了 Dubbo 、motan、Zbus等, 未来还会添加 gRPC 等更多的支持。
- 在 RPC 下,Jboot 支持了 RPC 下的 熔断、降级、监控、Opentracing等等功能
- 在分布式下,Jboot 支持了分布式缓存、分布式Session、分布式锁、分布式任务、统一配置中心
- 在数据库下,Jboot 支持分库分表、支持 Reids 等nosql数据库的极简调用
- 在 MQ 下,Jboot 支持 rabbitmq、redismq、zbus 甚至还支持了 阿里云的商业MQ
- 另外,Jboot还支持了Swagger、Event事件机制、高并发下的限流方案等等更多的惊喜
Spring Boot使用Tomcat来作为内嵌的Servlet容器。
参照 Spring Boot 性能优化之将Servlet容器变成Undertow
将Web服务器切换到Undertow来提高应用性能。Undertow是一个Java开发的灵活的高性能Web服务器,提供包括阻塞和基于NIO的非阻塞机制。Undertow是红帽公司的开源产品,是Wildfly默认的Web服务器。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 从依赖信息里移除 Tomcat配置 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
然后添加Undertow:
<!-- 添加 Undertow依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
Spring Boot默认的方式启动应用后, 监控到的内存占用情况:堆内存占用~·M,~~~个线程被开启。
而 Undertow 启动项目,用 监控到的信息显示:堆内存占用·~~M,~~ -1 个线程被开启。占用的内存 明显下降。