因为要集成项目到nacos里面
一、项目发展历程
1、原来是多模块的应用,通过腾讯云的CLB做对应的路由转发到不同的模块
2、发现多模块之间有服务间调用,应该通过rpc来调度了,但是因为没有引入微服务的概念,目前用的是内网的ip,利用docker做的固定项目ip。走http协议去远程调用的,目前缺少了具有负载功能的远程调用,走外网某些端口又要做接口认证,影响效率。之前因为时间不足,采用的ip信任的方式。
3、项目结构图
随着业务的发展,业务系统之间存在需要相互调用的情况。例如:卡券系统售卖的回调需要依赖于支付系统的回调,点单系统一样依赖于支付系统的回调
二、引入spring cloud的概念,做多模块项目,将业务系统的逻辑新增了一层spring cloud
- spring cloud
- pay
- smdd
- coupon
- base
- order-goods
- inventory
就类似于上述的模块结构
在主模块pom.xml引入几个主要的内容
<groupId>org.leo.xie</groupId>
<artifactId>cloud</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging> <!--这里默认是jar,主模块需要写成pom,具体百度-->
<modules>
<module>coupon</module>
<module>pay</module>
<module>smdd</module>
<module>base</module>
<module>order-goods</module>
<module>inventory</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version> <!-- 必须 -->
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.0.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencies>
<!--Spring Cloud 相关依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring Cloud Alibaba 相关依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>