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

相关推荐
wuminyu21 小时前
JUC包的AQS与JVM的ObjectMonitor机制对比分析
java·linux·c语言·jvm·c++
霸道流氓气质21 小时前
SpringBoot中使用OAuth2 认证与 JWT Token — 概念、原理与实践
java·spring boot·后端
dogstarhuang21 小时前
Kimi K3 本地部署实战:从 1.56TB 权重到推理服务的完整成本分析
java·人工智能·后端·ai·开源·接口·程序员创富
就不掉头发21 小时前
C++函数模板
java·开发语言·c++
用户2986985301421 小时前
Word 转 PDF 的 3 种自动化实现:从桌面操作到后端服务集成
java·人工智能·后端
Zane19941 天前
线程池进阶:如何科学设置线程数(结合实际业务场景复盘)
java·后端
SeaTunnel1 天前
Apache SeaTunnel 提交一个任务都经过了什么?
java·大数据·服务器·apache·etl·seatunnel
mifengxing1 天前
Java TreeSet
java·开发语言
编程风暴1 天前
零基础数据分析项目模板+5条避坑红线
java·数据挖掘·数据分析
IKUN家族1 天前
常见的依懒
java·服务器·数据库