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

相关推荐
写代码写到手抽筋7 小时前
5G上行DCI字段判定:端口 流数 PMI选择详解
java·算法·5g
xieliyu.8 小时前
Java算法精讲:双指针(二)
java·开发语言·算法
jeffer_liu8 小时前
Spring AI 生产级实战:裁判员
java·人工智能·后端·spring·大模型
小bo波9 小时前
枚举实战
java·设计模式·枚举·后端开发·代码重构
C+-C资深大佬9 小时前
全景声制作自由,Cubase Pro15 专业混音利器
tomcat
夜微凉49 小时前
三、Spring
java·后端·spring
橘右今9 小时前
2026 Java后端高频面试宝典
java·开发语言·面试
xyzzklk10 小时前
解决Salesforce无法向外发送邮件
android·java·开发语言·网络·crm·salesforce·客户关系管理
biubiubiu070611 小时前
SpringBoot关于外部化配置
java·spring boot·spring