- 🎥 个人主页:Dikz12
- 🔥个人专栏:Spring学习之路
- 📕格言:吾愚多不敏,而愿加学
- 欢迎大家👍点赞✍评论⭐收藏
目录
1. 开发环境安装
1.1 安装JDK
1.2 安装MySQL
2. 案列介绍
2.1 需求
2.2 服务拆分
1. 开发环境安装
1.1 安装JDK
⽬前⻓期维护的版本有: JDK8,JDK11,JDK17,JDK21。在JDK版本的选择上,尽量选择⻓期维护的版本.这里使用的是JDK17.
为什么使用JDK17 ?
Spring Cloud是基于Spring Boot进⾏开发的,SpringBoot3.X以下的版本,Spring官⽅已不再进⾏维护(还可以继续使⽤),Spring Boot3.X的版本,使⽤的JDK版本基线为JDK17.鉴于JDK21是2023.09⽉发布的,很多功能还没有在⽣产环境验证。
Windows环境
下载JDK:Java Downloads | Oracle
下载完成后,双击运行.exe文件,选择自己的安装目录,一路next就行了。
配置环境变量
1. 配置JAVA_HOME
变量名 | 变量值 |
JAVA_HOME | D:\ProgramFiles\Java\jdk-17 |
2.在Path中添加 JAVA_HOME 的值
在系统环境变量中找到Path,点击编辑->新建,加上变量值 %JAVA_HOME%\bin
3.验证.
在cmd中输⼊ java -version ,确认JDK是否安装和配置成功.
LInux环境(Ubuntu 20.4)
1.更新软件包
sudo apt update
2.安装JDK命令
sudo apt install openjdk-17-jdk
1.2 安装MySQL
Ubuntu 20.4
1. 查找安装包
apt list |grep "mysql-server"
2.安装mysql
sudo apt install mysql-server
3. 查看mysql状态
sudo systemctl status mysql
4. 连接mysql服务器
sudo mysql
5. 使⽤alter user 命令修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY
'******';
2. 案列介绍
2.1 需求
一个电商平台包含的内容⾮常多,以京东为例,仅从⾸⻚上就可以看到巨多的功能.
如果把这些功能全部写在⼀个服务⾥,这个服务将是巨⼤的.
巨多的会员,巨⼤的流量,微服务架构是最好的选择.
微服务应⽤开发的第⼀步,就是服务拆分.拆分后才能进⾏"各⾃开发".
2.2 服务拆分
拆分微服务—般遵循如下原则:
1. 单一职责原则.
单⼀职责原则原本是⾯向对象设计中的⼀个基本原则,它指的是⼀个类应该专注于单⼀功能。不要存在多于⼀个导致类变更的原因。⼀个微服务也应该只负责⼀个功能或业务领域,每个服务应该有清晰的定义和边界,只关注⾃⼰的特定业务领域.
2.服务自治
服务⾃治是指每个微服务都应该具备⾼度⾃治的能⼒,即每个服务要能做到独⽴开发,独⽴测试,独⽴构建,独⽴部署,独⽴运⾏.
以上⾯的电商系统为例,每⼀个微服务应该有⾃⼰的存储,配置,在进⾏开发,构建,部署,运⾏和测试时,并不需要过多关注其他微服务的状态和数据。
3. 单向依赖
微服务之间需要做到单向依赖,严禁循环依赖,双向依赖
循环依赖:A-> B -> C -> A
双向依赖:A-> B,B -> A
如果⼀些场景确实⽆法避免循环依赖或者双向依赖,就会考虑使⽤消息队列等其他⽅式来实现
微服务架构并⽆标准架构,合适的就是最好的,不然架构师⼤会也不会各个系统架构百花⻬放了.
在架构设计的过程中,坚持"合适优于业界领先",避免"过度设计"(为了设计⽽设计).