对nacos进行信创改造,将其中的tomcat替换为保兰德的中间件

Nacos 是阿里巴巴开源的动态服务发现、配置管理和服务管理平台,核心解决微服务架构中服务注册发现、配置中心、服务元数据管理三大核心问题,支持主流微服务框架(Spring Cloud、Dubbo、gRPC 等),兼具易用性、高可用和扩展性,是国内微服务生态的主流中间件之一。在国内微服务技术栈中,Nacos 是配置中心和服务注册发现领域的 "事实标准" 之一,国外项目常用 Consul/Etcd,而国内绝大多数基于 Spring Cloud/Dubbo 的微服务架构,都会优先选择 Nacos。

现在很多的公司,要求软件国产化,中间件国产化,nacos是开源国产的,但是Nacos 自身默认内嵌 Tomcat 提供 Web 服务。在很多公司tomcat是不允许使用的,如果使用nacos原版的话,会被扫描软件扫描到tomcat漏洞。如果是政府和过期单位的话,后果可严重了。

理论上Nacos内嵌的tomcat是可以被替换的,但是在官网没有找到相关资料。我这边客户要求将Tomcat替换为保兰德的BES Server。研究了一下,选择了从源码下手,重新编译Nacos,还是比较简单的,这里贾鲁分享一下。

环境准备

  1. jdk1.8
  2. maven 3.8以上(我使用idea内嵌的3.9)
  3. bes-lite-spring-boot-2.x-starter-9.5.5.002.jar(自己获取,打入本地maven仓库,springboot2对应的都是这个版本)

下载nacos源码

可以从https://github.com/alibaba/nacos/releases下载到nacos不同发布版本的源码,我这里是2.5.2。下载到本地解压

修改依赖

在源码项目的不同pom.xml 文件中搜索spring-boot-starter-web,将其中内嵌的tomcat排除,然后增加保兰德BES Server的依赖。示例如下:

xml 复制代码
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <exclusions>
    <!-- 排除内嵌的Tomcat -->
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<!-- 新引入 -->
<dependency>
  <groupId>com.bes.appserver</groupId>
  <artifactId>bes-lite-spring-boot-2.x-starter</artifactId>
  <version>9.5.5</version>
</dependency>

编译nacos

运行下面的命令,即可进行编译,打包

bash 复制代码
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

输出的结果在项目的distribution/target/目录下。

启动

启动方式和nacos官方的部署与启动方式一样,可以自己测试

相关推荐
Fuyo_111910 小时前
C++ AVL树保姆级详解:从平衡因子到四大旋转机制
java·c++·算法
Sarvartha10 小时前
Date、LocalDate、LocalTime、LocalDateTime、DateTimeFormatter类
java
阿俊-全栈开发11 小时前
LikeShop 多商户 Java 版商城微服务模块拆分与部署架构演进实践
java·微服务·架构·likeshop开源商城·多商户源码
Wang's Blog11 小时前
Java 项目实战:交友项目 - 联系人列表
java·开发语言·交友
我命由我1234511 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
香蕉大香蕉(06敬畏市场)12 小时前
MySQL 单点详解(01)
java·数据库·mysql·面试·博客·实习
LaughingZhu12 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
niucloud-admin12 小时前
NIUCLOUD PHP SAAS上门家政使用文档:服务保障
java·开发语言·php
IT枫斗者枫哥13 小时前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
知识搬运临时工13 小时前
一个模板把 AEM 拖进 Full GC 死亡螺旋:300% CPU、7 GB 堆、310 万行堆栈
java·aws