Spring-boot 使用undertow代替tomcat

Undertow是Red Hat公司的开源产品, 是一款灵活的高性能Web服务器,它完全采用Java语言开发,可以直接嵌入到Java项目中使用,支持阻塞IO和非阻塞IO。由于Undertow采用Java语言开发。
Undertow在高并发业务场景中,性能优于Tomcat,对于并发要求不高的情况下,二者差别不大。
Undertow支持:Http2、web socket、servlet4.0。
架构

由于undertow优越的性能表现,很多玩家把tomcat替换为undertow。实现过程很简单,第一,禁用tomat,第二启用undertowm。

1.修改pom.xml文件

<!--禁用tomcat-->
<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
		<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>

2.配置application.yml文件

删除tomcat修改配置,然后插入下面undertow配置

undertow:
    # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
    io-threads: 4
    # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
    worker-threads: 20
    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
    # 每块buffer的空间大小,越小的空间被利用越充分
    buffer-size: 1024
    # 是否分配的直接内存
    direct-buffers: true
    
    accesslog:  
      #Undertow访问日志目录
      dir:  ./logs/access_log
      #是否启用访问日志
      enabled: true
      #格式模式
      pattern:  common
      #日志文件名前缀
      prefix:  access_log.
      #启用访问日志轮换
      rotate:  true
      #日志文件名后缀
      suffix:  log
    #启动后是否立马初始化 servlet 过滤器  
    eager-filter-init: true
    #HTTP内容的最大字节数
    max-http-post-size:  10MB 

热门文章

暂无图片
编程学习 ·

通过连接Mysql实现的简单的登录注册功能

注册,登录 以下为具体代码: public class JDBCUtils {private static String url;private static String user;private static String password;private static String driver;//读取文件,只需读取一次即可拿到这些值,使用静态代码块static {try {//创建Properties集合类Pr…
暂无图片
编程学习 ·

性能优化总结

性能优化方向流畅(启动速度、卡顿) 稳定(内存泄漏、崩溃) 功耗(耗电、网络) 安装包(包体积)一、 流畅 卡顿优化 1、 布局优化简单布局使用Java代码代替布局文件 Android加载Xml布局文件,并将其转换成View,需要经历XML解析,使用Java代码直接创建View可以省去这一过程使用标签…
暂无图片
编程学习 ·

Android中给Layout添加点击事件

@Android中给Layout添加点击事件 步骤一:在layout控件中设置clickable和focuseable和id <LinearLayout android:id="@+id/to_anchor_dialog" android:onClick=“onClick” android:clickable=“true” android:layout_width=“match_parent” android:layout_hei…
暂无图片
编程学习 ·

unraid-APP加速方案火爆内测中!!!

unraid-APP加速方案火爆内测中!!! 声明:方案还在内测中,还没有完善的,不喜勿看。 图标已全部点亮,部分Ddocker火速下载中,插件部分等待更新,服务器继续更新中----------- 具体操作方案如下: 首先下载APP插件:https://gitlab.xcxlz.cn/shyd/community.applications/-…
暂无图片
编程学习 ·

Arduino项目实战——基于Arduino【智能垃圾桶】设计

Arduino项目实战——基于Arduino【智能垃圾桶】设计第一次接触Arduino是在大一的时候,距离现在已经五年,当时一个简单的“电子琴”项目就让我抓耳挠腮,根本不具备“面向百度编程”能力的我,用老师提供的文档跟我的组员用了好几天,才让Arduino跟蜂鸣器想起一首简单版的《小…
暂无图片
编程学习 ·

ITEST考试助手 --- 记一次我与ITEST的拉锯战

文章目录0x0 前言0x1 1.0版本 -- 解除限制我方进攻0x2 2.0版本 - 自动翻译与解析听力我方进攻ITEST方防御0x3 3.0版本 -- 解除切屏限制与添加翻译助手反制防御我方进攻ITEST防御0x4 4.0版本 - 全随机与ajax拦截反制防御我方进攻ITEST防御0x5 5.0版本 - 只读属性的胜利反制防御我…
暂无图片
编程学习 ·

计算机网络知识点梳理(上)

计算机网络知识点梳理(上) 参考资料:计算机网络(哈尔滨工业大学:李全龙、聂兰顺)MOOC目录计算机网络知识点梳理(上)1. 基础1.1. 计算机网络结构1.2. 应用模型:1.2.1. 客户/服务器应用模型1.2.2. 对等应用模型(P2P)1.3. 交换设备与交换网络1.4. 多路复用技术1.5. 性能1.5…
暂无图片
编程学习 ·

Docker的帮助和镜像命令

帮助命令 docker version 查看docker版本 docker info 显示全系统信息 docker --help 显示docker相关的所有命令 镜像命令 列表镜像 docker images 列表本机上的镜像REPOSITORY --表示镜像的仓库源 TAG --表示镜像的标签 IMAGE ID --镜像的ID CREATED --镜像的创建时间 SIZE --…
暂无图片
编程学习 ·

哲学家进餐问题

问题描述: 问题描述: 5个哲学家围坐在一个圆桌上,每两个哲学家之间都有一只筷子,哲学家平时进行思考,只有当他们饥饿时,才拿起筷子吃饭。规定每个哲学家只能先取其左边筷子,然后取其右边筷子,然后才可以吃饭。 #include<stdio.h>//c语言中主要的函数库 #include<std…
暂无图片
编程学习 ·

华为 openGauss数据库社区 openGauss数据库源代码

2020年7月1日,华为正式宣布开源数据库能力,开放openGauss数据库源代码, 并成立openGauss开源社区, 社区官网(http://opengauss.org)同步上线。关于openGaussopenGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核源自PostgreSQL,深度融合华为在…
暂无图片
编程学习 ·

随笔 弹窗 二维码生成及图片下载

一、qrcode-vue模块该模块是用来动态生成二维码的vue模块插件,<qrcode-vue></qrcode-vue>的底层其实是一个<canvas></canvas>标签。要想使用qrcode.vue插件,需要用vue的脚手架安装这个插件安装指令npm install qrcode --save-dev,在这里我举一个例子…
暂无图片
编程学习 ·

C++--找出三条能构成三角形且周长最大的边的一个普通方法

题目:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。 #输出示例 输入:[2,1,2] 输出:5 输入:[1,5,1] 输出:0 输入:[3,2,3,4] 输出:10 输入:[3,6,2,3] 输出:8 #inclu…
暂无图片
编程学习 ·

詹姆斯高斯林的传奇人生

詹姆斯高斯林 (James Gosling)是一名软件专家。 高斯林1955年生于加拿大,从小就显露出不同寻常的智慧,12岁便能自己设计电子游戏。 1984年,高斯林进入太阳计算机系统公司,并在这家公司度过了26年时光。 1955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公…
暂无图片
编程学习 ·

在使用R和Rstdio的常见问题

在Rstdio里无法画图有两种方法:一是使用代码 dev.new() 新建一个绘图窗口(我觉得这个方法好,因为在我的plots窗口画出来的图比例是变形的);二是换一个系统缓存目录,详细教程可以自行在网上寻找。在R里无法安装包可以像上面的方法二一样,换个缓存目录,或者在缓存目录里找…
暂无图片
编程学习 ·

B 1065 单身狗(散列的应用)

题目思路 这题明明写的是200ms要求,但可以暴力破解,这是我万万没想到的- -; 散列记录夫妻,hash【id】=cpid; 再用一个散列记录到场; 之后暴力破解遍历0~100001; 测试点3:注意00000的输出,有格式要求,不能输出成0; AC代码 #include<bits/stdc++.h> using names…
暂无图片
编程学习 ·

css rgba/hsla知识点讲解及半透明边框

一、RGBA(R,G,B,A) 参数: R:红色值。正整数 | |百分数G:绿色值。正整数 | |百分数B:蓝色值。正整数 | |百分数A:Alpha透明度。取值0~1之间。说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明度。 RGBA 颜色值得到以下浏览器的支持:IE9+、Firefox 3+、Chrome、S…
暂无图片
编程学习 ·

程序人生 - 西瓜霜能吃下去吗?

西瓜霜是可以吃下去的,但是会影响到临床的药效,临床常用的有西瓜霜和西瓜霜润喉片主要药理作用就是消肿止痛,清咽利嗓,多用于急慢性咽喉炎,扁桃体炎,口腔溃疡,口舌生疮等引起的咽喉疼痛,声音嘶哑,牙龈红肿。通常,主要是局部用药,这样才能够更好的发挥疗效,成年人一…
暂无图片
编程学习 ·

Android移动应用开发**Activity的事件监听**

第二篇:Activity的事件监听 实验目的 本次实验的目的是掌握控件的基于事件监听内部类、基于事件监听内部匿名类、Activity本身作为事件监听器以及直接绑定到标签等四种常用的事件处理方法。 实验任务及要求 掌握android系统的事件监听的几种处理方法。具体要求如下: i.基于事…