springboot2和eureka整合选择netty作为启动容器

发布于 2022-09-07 03:39:45 字数 1785 浏览 28 评论 0

最近刚上手springboot2,有很多大更新,准备研究一下spring-webflux使用内置的netty容器作为启动容器。
虽然刚上手遇到些坑,但是还算是如愿看到效果了。这是我整合spring-cloud-starter-netflix-eureka-server之前的pom

    <dependencies>
        
        <!-- Spring Boot Web Flux 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        
    </dependencies>

然后我想继续引入spring-cloud,踩了些坑也算运行起来了。但是一不留神看到启动日志中启动容器变为了tomcat,试了官方设置方式,引入spring-boot-starter-reactor-netty无效,还是tomcat启动

clipboard.png
这是我引用之后的pom

    <dependencies>
        
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        
        <!-- Spring Boot Web Flux 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <!-- 使用netty作为启动容器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-reactor-netty</artifactId>
        </dependency>
        
    </dependencies>

spring-cloud-starter-netflix-eureka-server这个引用会使我的启动容器变为tomcat,注释了就没问题。
我查看该引用的pom,最终在spring-cloud-netflix-eureka-server的pom中找到了他加了spring-boot-starter-web的引用,而这个引用中又引用了spring-boot-starter-tomcat。
我猜测是这一处造成的,但是我没有找到好的解决办法覆盖这个启动,请问有什么办法达到我的目的?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

山有枢 2022-09-14 03:39:45

没试过netty,但换jetty是这样:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</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-jetty</artifactId>
        </dependency>
木森分化 2022-09-14 03:39:45

首先你需要把springboot集成的tomcat容器排除掉,

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    然后再添加netty依赖才可以生效
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-reactor-netty</artifactId>
    </dependency>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文