对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官方的部署与启动方式一样,可以自己测试

相关推荐
JAVA面经实录91716 小时前
完整版JVM 深度学习体系(二)
java·jvm
.ZGR.16 小时前
线程池相关知识及并发统计案例实现
java·开发语言
慕言手记16 小时前
IDEA 插件常用-2026版
java·ide·spring boot·intellij-idea·idea·intellij idea
颖火虫盟主16 小时前
Hello World MCP Server 实现总结
java·前端·python
iiiiyu16 小时前
⾯向对象和集合编程题
java·大数据·开发语言·数据结构·编程语言
超級二蓋茨16 小时前
asp.net core中JwtBearerEvents中几个事件的生命周期
java·服务器·asp.net
Full Stack Developme16 小时前
Spring-web 解析
java·前端·spring
devilnumber16 小时前
如何在java的Lambda中安全地修改外部变量?
java·安全·lambda
大得36916 小时前
langchain使用
java·python·langchain
带刺的坐椅17 小时前
SolonCode CLI 的心智记忆功能:让 AI 编程助手越用越懂你
java·ai·llm·cli·soloncode