undertow服务配置多端口监听

“Agent Harness”和“Harness Engineering” 摘要:2026年AI工程化领域,"Agent Harness"(AI代理运行控制系统)与"Harness Engineering"(马具工程方法论)常被混淆。前者是管理AI代理非推理事务的技术实体(工具调用、记忆管理、安全约束等7层架构),后者是设计优化该系统的工程学科。研究表明,优化的Harness设计可使同一模型性能提升10倍。两者关系如同"马具"与"制具工艺":Harness Engineering指导Agent Harn 阅读详情

项目中,需要配置服务对外提供多个不同的端口,以保证访问不同的服务,进行不同业务的处理。使用的是Springboot+Undertow服务容器的方式。

1. undertow依赖的pom文件

 <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>

 <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

2. 多端口配置

首先需要在配置文件中,增加一个多端口配置的字段,用于配置除过原有server.port之外的端口。我这里配的是additional-ports字段:

server:
  port: 8010
  ## 支持的多端口监听,中间用,隔开,连续端口使用-进行链接
  additional-ports: 8888,8889-8892

其次需要新增config类, 将配置的端口加入启动时的端口监听中。我这里创建的类名为MultiplePortListerConfig,代码如下:

import cn.hutool.core.util.StrUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author: 
 * @date: 2022-12-16 18:14
 * @description: 配置undertow监听多端口
 */
@Configuration
public class MultiplePortListerConfig {
    /**
     * 额外端口监听
     */
    @Value("${server.additional-ports}")
    private String additionalPorts;

    @Bean
    public ServletWebServerFactory undertowFactory() {
        UndertowServletWebServerFactory undertowFactory = new UndertowServletWebServerFactory();
        undertowFactory.addBuilderCustomizers(builder -> {
            if (StrUtil.isBlank(additionalPorts)) {
                return;
            }
            String[] ports = additionalPorts.split(",");
           for (String port : ports) {
                if (port.contains("-")){
                    String[] portArr = port.split("-");
                    int start = Integer.parseInt(StrUtil.trim(portArr[0]));
                    int end = Integer.parseInt(StrUtil.trim(portArr[1]));
                    for (int i = start; i<=end; i++){
                        builder.addHttpListener(i, "0.0.0.0");
                    }
                }else {
                    builder.addHttpListener(Integer.parseInt(StrUtil.trim(port)), "0.0.0.0");
                }
            }
        });
        return undertowFactory;
    }
}

启动后,可以看见控制台出现同时监听8010,8888,8889,8890,8891,8892的信息:
在这里插入图片描述

调用不同端口访问服务均可访问成功,证明配置成功。

python语言下使用opencv接口cv2.VideoCapture()接口调用海康机器人工业相机 文章目录 目录 文章目录 前言 一、opencv接口介绍 二、调用海康机器人工业相机 1.使用海康机器人工业相机的前提 2.调用海康机器人工业相机进行显示 3.调用海康机器人工业相机进行存图 4.调用海康机器人工业相机存视频 5.调用海康机器人工业相机进行简单图像处理 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下. 阅读详情

相关推荐

联想Y9000P安装Ubuntu20.04记录

联想Y9000P 2022安装Ubuntu20.04问题记录

Legendyyy的博客 7115

springboot 2.0以上版本如何启动多端口监听@杨章隐

查了很多网上的教程,包括知乎高赞的,都是基于1.0的,springboot2.0已经遗弃一部分相关的class和方法或者类名方法名被修改导致有些入门着急找解决方案的朋友有点懵逼。所以写这篇东西 application.properties文件代码: server.port=${appPort:8080} server.additionalPorts=3050 创建一个 ApplicationConfig,代码如下 ,大部分的教程会让你用EmbeddedServletCont......

杨章隐的博客 1643

解决RK3566 USB OTG模式识别问题:从原理图分析到otg_mode文件操作全解析

本文深入解析RK3566 USB OTG模式识别问题,从硬件原理图设计到Linux内核的otg_mode文件操作,提供全面的调试方案。针对USB_OTG0_ID引脚电路设计、电源管理关联及内核驱动交互等关键点,给出实战调试技巧和常见问题解决方案,帮助开发者高效解决USB OTG模式切换难题。

eee77的博客 865

tomcat和undertow增加端口监听

tomcat和undertow增加端口监听(springboot环境下) 下面是undertow: import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; import org.springframework.context.annotation.Bean; import

weixin_45383314的博客 574

Zenoh:统一数据平面协议,重塑物联网与边缘计算架构

在分布式系统与物联网领域,数据通信与处理常面临协议割裂的挑战。传统方案如MQTT、Kafka、gRPC等,分别针对发布/订阅、流处理和RPC等不同场景,导致架构复杂、集成成本高。其核心问题在于未能统一处理“运动中数据”(Data in Motion)与“静止中数据”(Data at Rest)。Zenoh协议通过创新的“Key-Value”寻址与“Selector”查询语言,将发布/订阅、存储、查询和计算四种核心操作融合进单一协议,构建了统一的抽象层。这种设计实现了极低的协议开销(仅5字节头部)和地理分布式

weixin_29597551的博客 290

MCU 微控制器,在实际项目中如何选型(以 STM32为例)

1.MCU 选型需要考虑的一些因素 2.案例:传感器设备的 MCU 选型

创享 AIOT 的专栏 1万+

UnderTow 核心配置

本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford对于 bufferSize,最好和你系统的 TCP Socket Buffer 配置一样。

z69183787的专栏 1万+

VCS和UVM常用编译选项

VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含.

qq_40571921的博客 9932

Spring boot配置http和https访问使用tomcat和undowtow方式

方式一、Tomcat配置  一、相关配置 application.yml配置 server: #HTTPS和HTTP共用端口号 port: 8443 #如果要使用HTTP就注释掉一下配置信息测试的端口号就是定义的8080端口 #SSL配置 ssl: #证书配置 key-store: E://server.p12 #密码配置 key-st...

qq_36318234的博客 1757

SC8F073单片机串口通信保姆级教程:从寄存器配置到完整收发Demo(附避坑指南)

本文详细解析了SC8F073单片机串口通信的寄存器配置与调试技巧,涵盖TXSTA、RCSTA和SPBRG寄存器的逐位设置,提供精确的波特率计算方法和工业级抗干扰策略。通过完整的收发Demo和避坑指南,帮助开发者快速掌握底层串口通信技术,适用于工业控制等严苛环境。

weixin_33724046的博客 484

OceanBase容量统计:租户、数据库、表大小

🍎 数据库版本:OceanBase V4。

Sebastien23的博客 1396

Tomcat_配置多个端口

via: http://kely39.iteye.com/blog/1830889 tomcat 6.0 配置多个端口     一、Tomcat 安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat 6.0\webapps     二、Tomcat 6.0 配置多个端口,其实也就是给Tomcat增加几个server,并设置对应目录。   下面...

ALL TECHNOLOGIES ARE CLOUDS 252

机器人环境仿真软件:Webots_(9).路径规划与导航算法仿真实现

通过仿真,我们可以验证路径规划算法的有效性和鲁棒性,同时优化机器人在不同环境中的导航性能。动态窗口法是一种局部路径规划算法,通过在机器人当前速度空间中选择一个最优的速度窗口,使机器人在动态环境中安全地移动。算法的代价函数通常包括两个部分:从起始点到当前节点的实际代价(g-cost)和从当前节点到目标节点的估计代价(h-cost)。在World Editor中,选择“Insert”菜单,添加“Robot”对象,如“E-puck”或“Thymio”。Dijkstra算法的实现与A*算法类似,但不使用启发函数。

kkchenjj的博客 2006

SpringBoot中使用undertow

undertow依赖参数配置多端口监听 首先说一下undertow是个啥? undertow是一个采用Java开发的灵活的高性能web服务器。其提供包括阻塞和基于NIO的非阻塞机制。 它是红帽公司的开源产品,是一个完全为嵌入式设计的web服务器。 优点: 轻量:undertow只有几百KB,在嵌入式模式下运行,占用的堆内存也只有4MB左右 servlet兼容:完美兼容servlet3.1 Web...

meiyouya优快云的博客 9356

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

配置多个Undertow Listeners侦听器 | MSCode微服务平台框架代码源码

配置多个Undertow Listeners侦听器。 MSCode微服务平台框架mscodecloud.com 代码示例 @Bean public UndertowServletWebServerFactory servletWebServerFactory() { UndertowServletWebServerFactory factory = new UndertowServ...

qq_40246695的博客 158

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Undertow

Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个线程池中取得...

那些年的代码 565

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring Boot 容器选择 Undertow 而不是 Tomcat

Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从这个...

weixin_33713503的博客 1481

Spring Boot 容器选择 Undertow 而不是 Tomcat Spring Boot 内嵌容器Unde

Spring Boot 内嵌容器Undertow参数设置 配置项: # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 # 不要设置过大,如果过大,启动项目会报错:打开文件数过多 server.undertow.io-threads=16 # 阻塞任务线程池, 当执行类似servlet请求阻塞IO操作, undertow会从...

WGH100817的博客 251

Spring Boot 核心配置解析:server.port 与 server.http.port 区别与实战

Spring Boot应用端口配置详解:server.port与server.http.port的区别与使用 摘要:本文解析Spring Boot中两个关键端口配置项的区别与应用场景。server.port是原生核心配置,用于指定应用默认服务端口(HTTP/HTTPS共用),而server.http.port是自定义扩展配置,仅在HTTPS场景下作为HTTP备用端口(用于重定向)。文章详细介绍了三种典型配置方案:仅HTTP服务(默认8080端口)、仅HTTPS服务(需SSL证书配置)以及HTTP/HTTPS

cx1050306424的博客 885

Springboot中Tomcat配置及切换Undertow

使用配置文件可配置的更全。

weixin_46626971的博客 1339

springboot 项目监听多个端口

步骤: 1.在配置文件添加 #端口设置 server.port=8088 server.additionalPorts: 8089,8090 2.编写ApplicationConfig.class类 import org.apache.catalina.connector.Connector; import org.springframework.boot.web.embedded.tomcat.*; import org.springframework.beans.factory.annotat.

qq_58280734的博客 2376

SpringBoot 2.x 配置多端口启动

使用 tomcat 作为启动容器时:我这里写法比较简单,直接写死指定开启的端口,也可以修改下 PORT 从配置中获取,还有就是 Order 为最大值执行优先级低,这样可以准确判读多端口是否和启动指定的端口冲突,也就是比如 server.port 配置的端口。2、通过 @Import 注入 ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class。

tobeng的博客 2312

Springboot中如何启用多个监听端口

@Configuration public class EmbeddedTomcatConfiguration { @Value("${server.additionalPorts}") private String additionalPorts; @Bean public EmbeddedServletContainerFactory servletCon...

u012005912的专栏 1万+

Springboot、Spring cloud监听多个端口

步骤1: application.yml配置文件中添加需要监听的端口如下所示additionalPorts为该服务添加的其他端口 server: port: 8088 additionalPorts: 8089,8087 步骤2: 新建TomcatUtil.java类,详细代码如下 Springboot 1X 1 2 3 4 5 6 7 8 9 10 11 12 13

fdsjiaoDoctor的博客 1089

Undertow详解

udertow是RedHAT红帽公司开源的产品,采用Java开发,是一款灵活,高性能的web服务器,提供了NIO的阻塞/非阻塞API,也是Wildfly的默认Web容器。在javaweb容器的世界里,Tomcat和jetty是大众熟知的,undertow目前逐步进入大众的视角,它是一款能和tomcat媲美的神器,在性能方面吊打tomcat。目前Undertow已经成为springboot 默认集成的三大容器之一。

刘皇叔说Java的博客 2490

SpringBoot-Undertow应用waitting状态线程异常增加的问题探究

这里就可以看到我们配置中的io线程和worker线程数量都配置到了哪里,可以通过名字很清楚的看到,workerthreads是核心线程和最大线程的值,那就是说worker-threads (新API中脚thread.worker)设置的数量是核心线程数量,核心线程数有一个规则就是一旦创建了,并且为空闲了,则是一直存在于线程池中,不会被回收的,也是还可以被复用的。最后一张图,还可以看一下,我等待了一天了,这个线程也是不会自动停掉的,因为就是限制状态了,所以怀疑是不是核心线程数量,然后继续排查。

会飞的架狗师的博客 2382
上一篇: Undertow启动报Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
下一篇: Springboot+Mybatis,使用redis作为二级缓存
蓝色格子
博客等级 码龄9年 129粉丝 174原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值