精华内容
参与话题
问答
  • Undertow

    2019-10-28 14:15:28
    Undertow
  • undertow

    2019-12-20 09:39:09
    1\ http://undertow.io/undertow-docs/undertow-docs-2.0.0/index.html#access-log-handler 2、https://www.cnblogs.com/softidea/p/6068128.html
    展开全文
  • Undertow module

    2020-12-02 02:47:03
    <div><p>Logbook for Undertow</p><p>该提问来源于开源项目:zalando/logbook</p></div>
  • undertow 随着Java EE 7的到来以及处理诸如Web ... 在长期致力于JBoss Web服务器(Apache Tomcat的一个分支)之后,新版本的应用程序服务器现在基于名为Undertow的新Web服务器。 Undertow是一种基于Java的灵活,...
    undertow

    undertow

    随着Java EE 7的到来以及处理诸如Web Sockets API和HTTP升级(例如EJB over HTTP)之类的高级功能的要求,WildFly开发团队已经做出了重要决定。 在长期致力于JBoss Web服务器(Apache Tomcat的一个分支)之后,新版本的应用程序服务器现在基于名为Undertow的新Web服务器。

    Undertow是一种基于Java的灵活,快速的Web服务器,它基于J2SE新输入输出(NIO) API。 Undertow是围绕基于组合的体系结构设计的,该体系结构允许您通过组合称为处理程序的小型单个组件来构建功能全面的Web服务器。 这些处理程序链接在一起以形成功能齐全的Java EE servlet 3.1容器或嵌入在您的代码中的更简单的HTTP Process处理程序。

    从下图中可以看到,一个处理程序链由几个单独的处理程序组成,这些处理程序最终会产生Servlet响应或错误,例如,在找不到请求的Path的情况下:

    1个

    Undertow Web服务器还可以灵活地在非阻塞异步处理程序之间进行选择,以处理任务,或将请求委托给由线程池支持的阻塞处理程序。

    现在,我们将了解Web服务器的配置,因此只需打开您的配置文件(任何独立的配置文件或domain.xml ),然后移至默认情况下如下所示的“ undertow ”子系统:

    <subsystem xmlns="urn:jboss:domain:undertow:1.0">
       <buffer-caches>
          <buffer-cache name="default" buffer-size="1024" buffers-per-region="1024" max-regions="10" />
       </buffer-caches>
       <server name="default-server">
          <http-listener name="default" max-post-size="10485760" socket-binding="http" />
          <host name="default-host" alias="localhost">
             <location name="/" handler="welcome-content" />
          </host>
       </server>
       <servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
          <jsp-config />
          <persistent-sessions path="persistent-web-sessions" relative-to="jboss.server.data.dir" />
       </servlet-container>
       <handlers>
          <file name="welcome-content" path="${jboss.home.dir}/welcome-content" directory-listing="true" />
       </handlers>
    </subsystem>

    Undertow配置的关键要素之一是缓冲区缓存 缓冲区本质上是一个内存块,您可以在其中写入数据,然后可以在以后再次读取。 该内存块包装在NIO Buffer对象中,该对象提供了一组方法,可以更轻松地使用该内存块。 使用缓冲区的明显优势是内存访问比物理访问快得多。

    除了Java NIO外,WildFly还大量使用XNIO( http://www.jboss.org/xnio ),它是一个低级I / O层,可在任何地方使用以简化NIO API的使用。 它解决了使用选择器的一些复杂问题,以及对多播套接字和非套接字I / O(如串行端口)的NIO缺乏支持,同时仍保留了NIO中提供的所有功能。

    为了管理Undertow Web服务器,请从管理控制台中选择“配置文件”选项卡,然后移至“ Web”面板。 它包含一组标签,例如:

    • Web服务:用于指定一些核心Web服务设置,例如WSDL主机和端口
    • Servlets :用于指定是否使用开发模式(默认为false),该模式允许即时重新加载JSP。
    • HTTP :用于配置Undertow HTTP连接器。 例如,您将从此处将Web服务器与IO资源池相关联
    • Undertow Core :用于将处理程序和过滤器关联到HTTP连接。

    配置Web服务器池

    如果您来自JBoss AS 7环境,则这是您配置中的一部分,将进行更改。 在应用程序服务器的早期版本中,您曾引用线程执行器来调整Web服务器的线程池。 另一方面,对于WildFly 8,您需要引用一个需要在IO子系统中创建的Worker元素。 让我们看看如何做。 展开左树菜单中的“核心”选项,然后选择“ IO ”,如下图所示:

    2

    需要从主面板中选择“ Worker ”面板。 如您所见,“默认”工作程序已经存在。 您可以随时单击相应的按钮来创建或删除新的。 但是,现在我们将单击“编辑”链接,以便我们自定义默认工作线程中要使用的线程数。 单击链接后,我们将编辑以下属性:

    3

    第一个参数,堆栈大小对应于Web服务器线程堆栈大小。 使用更大的线程堆栈大小,Web服务器将消耗更多资源,因此可以支持更少的用户。 任务保持活动状态(默认为60)控制等待来自同一连接上的同一客户端的下一个请求的秒数。 使用Keep-Alives,浏览器可以在第一个请求之后消除每个请求的完整往返,通常将整个页面的加载时间减少了一半。

    Io线程数与可用的Web服务器线程数相对应。 这是一个重要的调整参数,对于流量较高的Web应用程序,需要增加此参数。 任务最大线程数可以控制并发请求的最大数量。 如果您对IO Worker的配置满意,请单击“保存”

    现在我们已经定义了Worker,我们将需要从Web服务器端引用它。 为此,从左侧树菜单中展开Web子系统,然后选择HTTP选项。 在那里,您将能够配置HTTP服务器特有的一些属性:

    4

    单击表中包含的“默认”元素,并检查Worker元素是否与您的IO Worker关联。 工作人员也需要启用才能使用。 接下来,我们需要将HTTP侦听器与套接字绑定相关联(请从“常规配置”左侧菜单中选择“套接字绑定”选项,以检查您的配置可用的套接字绑定)。 最后,HTTP服务器也绑定到Java NIO缓冲池实现,下一部分将对此进行讨论。

    一旦完成HTTP的工作程序配置,Web服务器将使用其工作程序线程,这些线程根据以下条件命名: [工作程序名称]-[工作程序ID]。 从下图中可以看到,用户定义了一个名为“ custom ”的工作程序,该工作程序已通过JConsole实用程序的“ Threads”部分(包含在JDK标准版本中)进行了监视:

    5

    配置Web服务器缓冲池

    正如我们所说的,Undertow基于Java NIO API,并利用了J2SE的池

    需要缓冲时,请使用java.nio.ByteBuffer

    缓冲区是一个对象,其中包含一些要写入或刚刚读取的数据。 在NIO中添加Buffer对象标志着新库和原始I / O之间最显着的差异之一。 在面向流的I / O中,您曾经将数据直接写入Stream对象,或直接从Stream对象读取数据。 在NIO库中,所有数据都由Buffers处理。 读取数据时,会将其直接读取到缓冲区中。 写入数据时,会将其写入缓冲区。 每当您在NIO中访问数据时,就将其从缓冲区中拉出。

    可以通过选择“核心” |“底层”来配置Undertow IO缓冲池 IO左侧菜单,以及“缓冲池”选项,如下图所示:

    6

    单击“默认”缓冲池行,您将可以在其中配置以下元素:

    每片缓冲区 此参数定义每个分片分配多少缓冲区。 切片用于处理大缓冲区的子部分,从而避免了处理整个缓冲区的开销
    直接缓冲区 通过此选项,您可以选择是否将缓冲区设置为直接缓冲区。 直接缓冲区的特征是它们是在Java堆之外分配的。 因此,一旦分配,它们的内存地址在缓冲区的生命周期内是固定的。 拥有固定的内存地址会导致内核可以安全地直接访问它们,因此,可以在I / O操作中更有效地使用直接缓冲区
    缓冲区大小 此选项使您可以定义java.nio.ByteBuffer的大小。 假设正在使用直接缓冲区,则如果需要最大性能,则默认的16kb缓冲区是最佳的(因为这对应于Linux上的默认套接字缓冲区大小)。

    http://www.itbuzzpress.com/
    此摘录摘自“ Wildfly 8 Book ”,这是一本实用且易于理解的指南,讨论了最流行的开源Java应用程序服务器: JBoss Wildfily (从JBoss AS重命名)。 本书涵盖了这个令人兴奋的新版本应用服务器的管理和管理方面的所有细节。 该书专门针对应用服务器的管理工具,为您介绍了所有最新的体系结构和性能更改。 您将从基本的服务器配置过渡到更高级的群集,JDBC连接,日志记录等技术。

    翻译自: https://www.javacodegeeks.com/2014/01/entering-undertow-web-server.html

    undertow

    展开全文
  • undertow服务器

    2019-10-09 08:21:44
    参考地址:http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html 1、引入相关jar <dependencies> <dependency> <groupId>io.undertow</groupId> <artifact...

    参考地址:http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html

    1、引入相关jar

    <dependencies> 
      <dependency> 
        <groupId>io.undertow</groupId>  
        <artifactId>undertow-core</artifactId>  
        <version>2.0.22.Final</version> 
      </dependency> 
    </dependencies>

    2、编写启动函数

    package com.msj;
    
    import io.undertow.Handlers;
    import io.undertow.Undertow;
    import io.undertow.server.handlers.resource.PathResourceManager;
    
    import java.io.File;
    
    /**
     * @author 苗士军
     * @version 1.0
     * @date 2019/9/25
     */
    public class UndertowServer {
        public static void main(String[] args) {
            File file = new File("D:/undertow");
            Undertow server = Undertow.builder().addHttpListener(1234, "localhost")
                    .setHandler(Handlers.resource(new PathResourceManager(file.toPath(), 100))
                            .setDirectoryListingEnabled(true))
                    .build();
            server.start();
        }
    }

    3、启动main函数,浏览器输入地址,可以看到相关文件

     

    转载于:https://www.cnblogs.com/miaosj/p/11599251.html

    展开全文
  • Undertow Undertow是一个Java开发的灵活的高性能Web服务器,提供包括阻塞和基于NIO的非阻塞机制。Undertow是红帽公司的开源产品,是Wildfly默认的Web服务器。 SpringBoot2中可以将Web服务器切换到Undertow来提高应用...

    Undertow

    Undertow是一个Java开发的灵活的高性能Web服务器,提供包括阻塞和基于NIO的非阻塞机制。Undertow是红帽公司的开源产品,是Wildfly默认的Web服务器。
    SpringBoot2中可以将Web服务器切换到Undertow来提高应用性能。

    Untertow 的特点

    • Servlet4.0 支持:它提供了对 Servlet4.0 的支持。
    • WebSocket 支持:对 Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。
    • 嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器。
    • 灵活性:交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。
    • 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存。

    Untertow 的性能

    默认情况下 Spring Cloud 使用 Tomcat 作为内嵌 Servlet 容器,可启动一个 Tomcat 的 Spring Boot 程序与一个 Undertow 的 Spring Boot 程序,通过 VisualVM 工具进行比较,可看到 Undertow 性能优于 Tomcat。
    在这里插入图片描述
    在这里插入图片描述

    SpringBoot2启用Undertow

    第一步,排除Tomcat依赖。
    第二部,添加Undertow依赖。

    		<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依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-undertow</artifactId>
            </dependency>
    

    缺少包导致的报错

    如果你的undertow也会这样(一般不会):

    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    An attempt was made to call the method io.undertow.servlet.api.DeploymentInfo.addServletContainerInitializer(Lio/undertow/servlet/api/ServletContainerInitializerInfo;)Lio/undertow/servlet/api/DeploymentInfo; but it does not exist. Its class, io.undertow.servlet.api.DeploymentInfo, is available from the following locations:
    
        jar:file:/C:/Users/Administrator/.m2/repository/io/undertow/undertow-servlet/1.4.25.Final/undertow-servlet-1.4.25.Final.jar!/io/undertow/servlet/api/DeploymentInfo.class
    
    It was loaded from the following location:
    
        file:/C:/Users/Administrator/.m2/repository/io/undertow/undertow-servlet/1.4.25.Final/undertow-servlet-1.4.25.Final.jar
    
    
    Action:
    
    Correct the classpath of your application so that it contains a single, compatible version of io.undertow.servlet.api.DeploymentInfo
    

    请加上以下maven依赖。因为我的SpringBoot2.0.7会这样。

    <!-- https://mvnrepository.com/artifact/io.undertow/undertow-core -->
            <dependency>
                <groupId>io.undertow</groupId>
                <artifactId>undertow-core</artifactId>
                <version>2.0.16.Final</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/io.undertow/undertow-servlet -->
            <dependency>
                <groupId>io.undertow</groupId>
                <artifactId>undertow-servlet</artifactId>
                <version>2.0.16.Final</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/io.undertow/undertow-websockets-jsr -->
            <dependency>
                <groupId>io.undertow</groupId>
                <artifactId>undertow-websockets-jsr</artifactId>
                <version>2.0.16.Final</version>
            </dependency>
    

    运行成功

    在这里插入图片描述
    Undertow参数配置

    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
    # 不要设置过大,如果过大,启动项目会报错:打开文件数过多
    
    server.undertow.io-threads=16
    
    # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程
    # 它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数*8
    server.undertow.worker-threads=256
    
    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
    # 每块buffer的空间大小,越小的空间被利用越充分,不要设置太大,以免影响其他应用,合适即可
    server.undertow.buffer-size=1024
    
    # 每个区分配的buffer数量 , 所以pool的大小是buffer-size * buffers-per-region
    server.undertow.buffers-per-region=1024
    
    # 是否分配的直接内存(NIO直接分配的堆外内存)
    server.undertow.direct-buffers=true
    
    展开全文
  • undertow配置

    2020-09-22 08:54:51
    #server.undertow.io-threads=32 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得线程 # 它的值设置取决于系统线程执行任务的阻塞系数,默认值是IO线程数*8 #server.undertow....
  • Android代码-undertow

    2019-08-07 08:10:27
    Undertow Undertow is a Java web server based on non-blocking IO. It consists of a few different parts: A core HTTP server that supports both blocking and non-blocking IO A Servlet 4.0 implementation ...
  • undertow入门

    2020-06-30 11:04:01
    undertow 概述 : Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器 特点 : 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以...
  • UNDERTOW-289

    2021-01-07 15:09:32
    <div><p>My use case is that I want to pick hosts from the same data center firstly, i have noticed that someone create issue for it: ...undertow-io/undertow</p></div>
  • UNDERTOW-80

    2021-01-07 15:12:32
    <div><p>Do not remove session attributes before HttpSessionListener.sessionDestroyed() is invoked on all listeners</p><p>该提问来源于开源项目:undertow-io/undertow</p></div>
  • Undertow服务器基础分析 - Undertow

    千次阅读 2017-01-25 14:04:00
    Undertow是一个Web服务器,那么它就需要具备的现代Web服务器的基本特性,比如Servlet,JSP,文件服务器,代理服务器,安全认证等。undertow目前已经实现了绝大多数功能,并且因为wildfly通过了JavaEE7 TCK认证,所以...
  • Undertow 2.0.21 issue

    2020-12-08 19:13:11
    <div><p>After upgrading my container to Java 11 running an application using Undertow 2.0.21 and Datadog agent 0.47.0, I've started to see some issues happening during container startup. <p>The ...
  • undertow服务器分析 随着Java EE 7的到来以及处理诸如Web Sockets API和HTTP升级(例如EJB over HTTP)之类的高级功能的要求,WildFly开发团队已经做出了重要决定。 在长期致力于JBoss Web服务器(Apache Tomcat的...
  • undertow 我一直在研究WildFly 8的一些安全性主题,偶然发现了一些配置文档,这些文档没有很好地记录。 其中之一是用于新的Web子系统Undertow的TLS / SSL配置。 有很多关于较旧的Web子系统的文档,并且确实仍然可以...
  • Undertow web容器

    千次阅读 2019-07-23 23:55:34
    Undertow web容器一、Undertow 介绍二、使用undertow2.1、依赖添加2.2、在启动类,配置undewtow-server bean2.3、对比Tomcat启动日志输出2.4、对HTTP 2.0的支持2.5、配置undertow三、undertow 的深入 一、Undertow ...
  • <div><p>This builds on top of Stuart's initial version, but splits the tests to use a matrix and test each module in parallel. <p>Should also address: ...undertow-io/undertow</p></div>
  • ServerRunner with Undertow

    2020-11-23 08:58:55
    <p>Implementation of the ServerRunner with Undertow is completed. The sequential execution is implemented with RequestLimitedHandler. Also, this pull request is a superset of #121. <p>The purpose is ...
  • <div><p>…ntInfo <p>JIRA: https://issues.jboss.org/browse/UNDERTOW-1504</p><p>该提问来源于开源项目:undertow-io/undertow</p></div>
  • 应用容器undertow

    2020-12-23 14:07:49
    springboot项目首选应用容器undertow,核心参数配置如下 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 设置每个CPU核心数 server.undertow.io-threads=8 阻塞任务线程池, 当执行类似servlet请求阻塞...
  • Fixes UNDERTOW-353

    2021-01-07 15:04:44
    <div><p>该提问来源于开源项目:undertow-io/undertow</p></div>
  • Spring Boot内嵌容器支持Tomcat、Jetty、Undertow。为什么选择Undertow? 这里有一篇文章,时间 2017年1月26日发布的: Tomcat vs. Jetty vs. Undertow: Comparison of Spring Boot Embedded Servlet Containers 这...
  • SpringBoot之Undertow

    2020-01-31 11:08:02
    同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat,那我们如何使用Undertow技术呢?本文将为大家细细讲解。 SpringB...
  • Springboot使用UndertowUndertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器Undertow的特点:轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 ...
  • Springboot使用Undertow

    2020-03-26 17:13:46
    Springboot使用Undertow Undertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器 Undertow的特点: 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载...
  • Making Undertow class final

    2021-01-07 15:09:41
    <div><p>This class is not meant to be extended</p><p>该提问来源于开源项目:undertow-io/undertow</p></div>
  • <div><p>https://issues.jboss.org/browse/UNDERTOW-932 mod_cluster hot standby workers are always in error mode resulting in 503 <p>...undertow-io/undertow</p></div>
  • undertow ssl 我一直在研究WildFly 8的一些安全性主题,偶然发现了一些没有很好记录的配置选项。 其中之一是用于新的Web子系统Undertow的TLS / SSL配置。 有很多关于较旧的Web子系统的文档,并且确实仍然可以使用,...

空空如也

1 2 3 4 5 ... 20
收藏数 2,305
精华内容 922
关键字:

undertow