undertow

Spring Boot 系统要求

此生再无相见时 提交于 2019-11-29 08:43:17
Spring Boot 2.1.0.RELEASE 方需要 Java 8 or 9 的支持和 Spring Framework 5.1.2.RELEASE 以上的版本。 明确的构建工具的支持,请参考下面的构建工具: 构建工具 版本 Maven 3.3+ Gradle 4.4+ Servlet 容器 Spring Boot 支持下面的嵌入 servlet 容器: 名字 Servlet 版本 Tomcat 9.0 4.0 Jetty 9.4 3.1 Undertow 2.0 4.0 你也可以将 Spring Boot 部署到任何支持 Servlet 3.1+ 的容器中。 https://www.cwiki.us/display/SpringBootZH/System+Requirements 来源: oschina 链接: https://my.oschina.net/u/2344080/blog/2961638

Spring Boot

孤街醉人 提交于 2019-11-29 02:53:17
Spring Boot :Undertow Undertow Undertow 是红帽公司开发的一款 基于 NIO 的高性能 Web 嵌入式服务器 Untertow 的特点: 轻量级 :它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存 Servlet3.1 支持 :它提供了对 Servlet3.1 的支持 WebSocket 支持 :对 Web Socket 完全支持,用以满足 Web 应用巨大数量的客户端 嵌套性 :它不需要容器,只需通过 API 即可快速搭建 Web 服务器 默认情况下 Spring Cloud 使用 Tomcat 作为内嵌 Servlet 容器,可启动一个 Tomcat 的 Spring Boot 程序与一个 Undertow 的 Spring Boot 程序,通过 VisualVM 工具进行比较,可看到 Undertow 性能优于 Tomcat 使用 Undertow 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org

Spring Boot 2 实战:使用 Undertow 来替代Tomcat 作为Web 容器

纵饮孤独 提交于 2019-11-29 02:51:24
1. Undertow 简介 Undertow 是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。 Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。 Undertow 提供一个基础的架构用来构建 Web 服务器,这是一个完全为嵌入式设计的项目,提供易用的构建器 API,完全向下兼容 Java EE Servlet 3.1 和低级非堵塞的处理器。 2. Undertow特点 高性能 在多款同类产品的压测中,在高并发情况下表现出色。 Servlet4.0 支持 它提供了对 Servlet4.0 的支持。 Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。 内嵌式 它不需要容器,只需通过 API 即可快速搭建 Web 服务器。 灵活性 交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。 轻量级 它是一个 内嵌Web 服务器, 由两个核心 Jar 包组成 3. 替换默认的Tomcat Spring boot 默认使用 Tomcat 内嵌容器 。依赖于 spring-boot-starter-web 。我们只需要排除 Tomcat 依赖。引用 Undertow 就可以了, maven 配置如下: <dependency>

后续之《SpringBoot服务器压测对比(jetty、tomcat、undertow)》

↘锁芯ラ 提交于 2019-11-29 02:51:11
一、前言 昨天发了一个《 SpringBoot服务器压测对比(jetty、tomcat、undertow) 》,本是工作的一个笔记,没想到被红薯翻牌了(荣幸之至)。看了OSCer的回复,感觉需要重新梳理下,因为确实存在描述不清和不合理的配置。 这篇博客的目的,不是复述上一篇博客,而是尽量规范的去做一次压测对比,并且能够清晰的描述出过程和结果。 二、准备 1、服务器 为了保证尽量少的干扰,这里不再在虚拟机上运行服务,而是直接在物理机上运行服务,并且在这台物理机上安装ab工具。 服务器配置是2个CPU,单个CPU8核,总共内存40G,1T的RAID5机械硬盘。服务器安装的系统是Centos7.5,系统优化同《 Centos7高并发优化 》所述。但额外的,因工作需要,这台物理机上有6个虚机,是不能关闭的。以下是简单的top展示: 2、测试项目 感谢@ TGVvbmFyZA 的建议,测试项目不再使用生产项目,而是从Springboot官网打包2.x版本的项目,这样的目的是减少生产项目中不必要的依赖,从而避免不必要的开销。以下是简单的项目介绍: 序号 名称 版本 1 springboot 2.1.1 2 java 1.8 我已将项目放到Gitee,地址:https://gitee.com/loveliyiyi/test4server 以下贴出关键代码,以便更好理解。 package com

熵增学院-Anders-剑走偏锋,了解Spring Boot内部Servlet容器

半腔热情 提交于 2019-11-28 11:34:21
还记得大明湖畔的servlet吗?其实Spring Boot支持内嵌的Tomcat, Jetty和Undertow服务器,多数开发者只需要使用合适的'Starter'来获取一个完全配置好的实例即可,内嵌服务器默认监听8080端口的HTTP请求。 这样子是不是觉得很简单,很方便,有种开发nodejs的感觉..... 1. 在SpringBoot中还有Servlets, Filters和listeners吗? 使用内嵌servlet容器时,你可以通过使用Spring beans或扫描Servlet组件的方式注册Servlets,Filters及特定Servlet相关的所有listeners(比如 HttpSessionListener )。 将Servlets,Filters和listeners注册为Spring beans 所有 Servlet , Filter 或Servlet *Listener 实例,只要是Spring bean,都会注册到内嵌容器中。如果想在配置期间引用 application.properties 的属性,这是非常方便的。默认情况下,如果上下文只包含单个Servlet,那它将被映射到 / 。如果存在多个Servlet beans,那么bean的名称将被用作路径的前缀,过滤器将映射到 /* 。 如果基于约定(convention-based)的映射不够灵活

Spring Boot中Starter是什么

邮差的信 提交于 2019-11-28 07:49:42
Spring Boot中Starter是什么 比如我们要在Spring Boot中引入Web MVC的支持时,我们通常会引入这个模块spring-boot-starter-web,而这个模块如果解压包出来会发现里面什么都没有,只定义了一些POM依赖。 经过研究,Starter主要用来简化依赖用的。比如我们之前做MVC时要引入日志组件,那么需要去找到log4j的版本,然后引入,现在有了Starter之后,直接用这个之后,log4j就自动引入了,也不用关心版本这些问题。 部分starters的依赖: Starter(Group ID: org.springframework.boot) 传递依赖于 spring-boot-starter-log4j2 ■ org.apache.logging.log4j:log4j-slf4j-impl ■ org.apache.logging.log4j:log4j-api ■ org.apache.logging.log4j:log4j-core ■ org.slf4j:jcl-over-slf4j ■ org.slf4j:jul-to-slf4j spring-boot-starter-logging ■ ch.qos.logback:logback-classic ■ org.slf4j:jcl-over-slf4j ■ org.slf4j

Spring Boot with Embedded Undertow behind AWS ELB - HTTP to HTTPS redirect

匆匆过客 提交于 2019-11-28 02:13:21
I'm running a Spring boot (Jhipster/Undertow) application on port 8080 on an AWS EC2 instance. I have an AWS ELB configured to redirect 80 -> 8080 443 (SSL termination happens here) -> 8080 The application uses Spring Security and if you user arrives to http://example.com I want it to redirect to https://example.com , to use SSL. I have found various examples of configuring this in Tomcat but none using Undertow. I have tried this, with a second port 8089, and it does redirect as required, but this causes port 8080 to also redirects which I don't want. 80 -> 8089 443 (SSL termination happens

Tomcat和Undertow并发性能

…衆ロ難τιáo~ 提交于 2019-11-27 18:46:31
Undertow(SpringBoot内置版)篇 JVM参数: -Xms1024m -Xmx1024m 测试参数: 压测工具,参数最大化,连续测试10分钟,得出各种曲线。 软件架构: JDK1.8 SpringBoot全家桶,version1.4.2 SpringMVC Freemarker Undertow(内置) 硬件环境: CPU:i7-4710mq RAM:16GB(有JVM参数,貌似没啥意义) 测试环境: Freemarker页面,几乎都是静态的东西,反正测试页面都相同。 结果概览 亮瞎了我的双眼,要不要别这么暴力,一个错误没有! GC曲线 一直发生GC的是Eden区,其它区几乎没有GC过,毕竟就一个很简单的Controller. RPS曲线 眼睛再次受伤,太完美了,差不多一直保持在2K以上。 Tomcat(内置版)篇 JVM参数: -Xms1024m -Xmx1024m 测试参数: 压测工具,参数最大化,连续测试10分钟,得出各种曲线。 软件架构: JDK1.8 SpringBoot全家桶,version1.4.2 SpringMVC Freemarker 硬件环境: CPU:i7-4710mq RAM:16GB(有JVM参数,貌似没啥意义) 测试环境: Freemarker页面,几乎都是静态的东西,反正测试页面都相同。 结果概览 相对前者,错误较多,而且

Routing template format for undertow

拥有回忆 提交于 2019-11-27 14:19:48
问题 Is there any documentation about routing template format for undertow. I want to setup handlers like this: / or /index.html -> Use handler 1 Anything else -> Use handler 2 I tried this one, bu did not work: Handlers.routing() .add("GET", "/", handler1) .add("GET", "/index.html", handler1) .add("GET", "/*", handler2) Any idea? 回答1: There are a couple of ways to achieve this: 1) Basic approach: PathHandler Handlers.path() .addExactPath("/path1", handler1) .addPrefixPath("/path2", handler2); The

JBolt-JFinal开发利器,新官网上线

时光总嘲笑我的痴心妄想 提交于 2019-11-27 04:14:16
JBolt ,诞生于2016年8月,以Eclipse插件的形式提供给JFinal开发者无偿下载使用。(Idea版还在捣鼓...) 今天JBolt新版官网正式上线,欢迎访问学习交流和使用,有什么问题,在社区提问@我即可,或者在文章下方有我的微信联系方式,随时技术聊起来。 官网 : http://jbolt.cn JBolt的诞生,本身也源于自己在项目开发中的需求,特别是我自由职业后,开发了很多JFinal小项目,通过JBolt和JFinal,轻松养家糊口,技术变现。 做项目时,特需要有一套快速生成可运行开发环境,如果有表结构变更,快速完成数据库和Java代码统一的生成器等。 所以,就拾起荒废了几年不用的Eclipse插件开发技术。 *2016年8月份,正式推出,广受好评,下载量过万。 *2017年-2018年,功能不断增加,从只能生成普通的动态Web工程,到后来可以轻松生成Maven功能; *从只能支持Mysql数据库到现在支持各种主流数据库; *从只能支持Jetty-server,到现在可以支持Undertow、Jetty、tomcat等。 *从只能依赖Eclipse导出War包自行处理部署,到现在可以普通Web工程和Maven工程都能导出一模一样的Undertow专用部署包,Maven支持导出各种服务器需要的类型。 *从只能自行下载Jar包或者Pom引用导入第三方类库