分布式系统架构怎么搭建?

news/2025/1/26 15:31:08/

分布式系统架构

互联网企业的业务飞速发展,促使系统架构不断变化。总体来说,系统架构大致经历了单体应用架构垂直应用架构分布式架构SOA架构微服务架构的演变,很多互联网企业的系统架构已经向服务化网格(Service Mesh)演变。

单体应用架构:所有的模块写到一个Web项目中,再统一部署到一个Web服务器中。

分布式架构:将重复的代码抽象出来,形成统一的服务,供其他系统或者业务模块调用。

xxx-common: pojo,utils,config
xxx-system: pojo,dao,service
xxx-admin : controller

system 调用公共模块 common,控制模块 admin 调用业务模块 system。

简单举例。

创建项目

在这里插入图片描述

父级配置

<!--修改父级打包方式-->
<packaging>pom</packaging>
<!--子级都有谁-->
<modules><module>boot-admin</module><module>boot-common</module><module>boot-system</module>
</modules>

子级配置

<!--修改子级打包方式-->
<packaging>jar</packaging>
<!--引入父级-->
<parent><groupId>com.hz</groupId><artifactId>boot-parent</artifactId><version>0.0.1-SNAPSHOT</version>
</parent>

三者的依赖关系

<!-- boot-system -->
<dependencies><dependency><groupId>com.hz</groupId><artifactId>boot-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
</dependencies>
<!-- boot-admin -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.hz</groupId><artifactId>boot-system</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
</dependencies>
<!-- boot-parent -->
<!-- 在 boot-parent 中引入需要的依赖 这样所有的子级都可以使用 -->
<dependencies><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>

boot-common

模块结构:公共实体类、工具类等

在这里插入图片描述

boot-system

模块结构:数据持久化、服务接口及其实现类等

在这里插入图片描述

boot-admin

模块结构:启动类、控制器、yml配置文件等

在这里插入图片描述

打开 Maven,点击父级 boot-parent 打包

在这里插入图片描述

去到该目录下

D:\idea_workspaces\boot-parent\boot-admin\target

打开终端,输入命令

>java -jar boot-admin-0.0.1-SNAPSHOT-smbms.jar

运行项目

在这里插入图片描述

成功运行后调用接口测试,成功即可。


http://www.ppmy.cn/news/1566344.html

相关文章

机器人奇点:从宇树科技看2025具身智能发展

近年来&#xff0c;随着人工智能和机器人技术的飞速发展&#xff0c;具身智能&#xff08;Embodied Intelligence&#xff09;逐渐成为科技领域的热门话题。具身智能不仅赋予了机器人感知、决策和执行的能力&#xff0c;还通过与物理世界的交互&#xff0c;推动了人工智能从“离…

PPT添加与管理批注的操作指南

​​​ 批注是PPT中一个非常实用的功能&#xff0c;它不仅能帮助我们在演讲和设计过程中记录想法&#xff0c;还能与他人协作时提供有价值的反馈。无论是团队讨论、审稿&#xff0c;还是个人思考&#xff0c;批注的运用都能让我们的PPT更加完善和高效。我会详细介绍如何在PPT中…

苍穹外卖—订单模块

该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查&#xff0c;较基础&#xff0c;因此直接导入代码。 地址表 一个用户可以有多个地址&#xff0c;同时有一个地址为默认地址。用户还可为地址添加例如&q…

IOS 自定义代理协议Delegate

QuestionViewCell.h文件代码&#xff0c;定义代理协议 protocol QuestionViewCellDelegate <NSObject>- (void)cellIsOpenDidChangeAtIndexPath:(NSIndexPath *)indexPath;endinterface QuestionViewCell : UITableViewCellproperty (nonatomic, weak) id<QuestionVi…

记一次Linux共享内存段排除Bug:key值为0x0000000的共享内存段删除不了

本文目录 一、问题情况二、解决方法2.1 通过kill命令删除2.2 通过程序删除 一、问题情况 今天查看共享内存段发现好多共享内存段&#xff0c;而且命令ipcrm -m <shmid>删除不了。 回想了一下&#xff0c;应该是有一些程序跑while循环&#xff0c;或者死循环&#xff0c…

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑&#xff1a;**在发布的过程中不影响用户的使用&#xff0c;系统不会因发布而暂停对外服务&#xff0c;不会造成用户短暂性无法访问&#xff1b; **什么叫灰度&#xff1a;**发布后让部分用户使用新版本&#xff0c;其它用户使用旧版本&am…

GeoJSON 数据

一、GeoJSON 数据的概述 GeoJSON 是一种基于 JSON 格式的地理信息数据交换格式&#xff0c;它用于表示地理要素及其属性。GeoJSON 可以用来描述点、线、面等几何形状&#xff0c;并且可以为这些几何形状添加额外的属性信息&#xff0c;被广泛应用于地理信息系统&#xff08;GI…

Kafka 消费端反复 Rebalance: `Attempt to heartbeat failed since group is rebalancing`

文章目录 Kafka 消费端反复 Rebalance: Attempt to heartbeat failed since group is rebalancing1. Rebalance 过程概述2. 错误原因分析2.1 消费者组频繁加入或退出2.1.1 消费者故障导致频繁重启2.1.2. 消费者加入和退出导致的 Rebalance2.1.3 消费者心跳超时导致的 Rebalance…