微服务拆分
划分原则
基于业务逻辑
根据业务需求,模块功能进行拆分,容易产生耦合
基于稳定性
稳定性的服务和不稳定的服务不易放在一起,不稳定的服务在更新变化时会影响到稳定性的服务
基于可靠性
同样,将系统中的业务模块按照可靠性进行排序。对可靠性要求较高的核心模块归到一起,对可靠性要求不高的非核心模块归在一块。
基于高性能
对用户访问量高的核心模块进行拆分,对访问量低的业务进行合并。
项目二拆分
用户服务
登陆/注册功能
文章服务
目的地/攻略/游记管理
点评服务
文章评论管理
数据服务
负责文章数据统计
搜索服务
基于ES全文搜索
项目结构
trip-parent ├── trip-gateway ├── trip-website ├── trip-mgrsite ├── trip-common │ ├── trip-common-core │ ├── trip-common-redis │ └── trip-common-xxx ├── trip-module-api │ ├── trip-article-api │ ├── trip-comment-api │ ├── trip-user-api │ ├── trip-data-api │ └── trip-serch-api ├── trip-server │ ├── trip-server-article │ ├── trip-server-comment │ ├── trip-server-user │ ├── trip-server-data │ └── trip-server-serch
|
创建项目
父项目
创建一个普通的Maven项目,删除其中的src目录,只保留pom.xml。
在父项目的pom中添加如下版本控制
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.swx</groupId> <artifactId>trip_cloud</artifactId> <version>1.0.0</version>
<packaging>pom</packaging>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.9.RELEASE</version> </parent>
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-cloud.version>Hoxton.SR10</spring-cloud.version> <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <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> </dependencyManagement>
</project>
|
网关模块
在trip_cloud
父项目下创建子模块trip-gateway
,pom文件内容如下:
pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.swx</groupId> <artifactId>trip_cloud</artifactId> <version>1.0.0</version> </parent>
<artifactId>trip-gateway</artifactId> <description>网关服务,作为整个系统的统一入口</description>
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies>
</project>
|