初识Spring-Cloud——集群与分布式

前言:

想要了解spring-cloud有以下前提:

1.学习掌握java语言

2.了解过spring全家桶,学习掌握springboot(尽量有过实践)

如果以上条件均满足,需要思考下列一个问题:

大家在使用springboot创建项目时,首先有一个springApplication启动类,通过注解@SpringBootApplication+run方法可以启动springboot项目。但是如果此时项目比较大,之后一个项目中有多个服务,包括订单服务、商品列表服务等等。

此时如果该springboot启动后出现了一些问题,导致所有服务都用不了了,此时很明显是不合理的。

那么有没有办法,将以上的服务尽量拆分开来,服务以服务之间尽量不要相互影响!!

那么此时就出现了微服务,将一个大的服务,拆分为多个小的服务,并且服务之间没有相互影响。

所以此时,学习微服务的前提就需要知道单体架构(服务)的缺点,以及如何补救。

集群和分布式架构:

在认识微服务之前需要认识一下什么是集群什么是分布式!!

当⽹站的用户量越来越⼤, 需求也会越来越多, 流量也会越来越⼤, 服务可能就会面临以下问题:
1.后端服务器的压⼒就会越来越⼤, 负载越来越⾼, 甚至出现⽆法访问的情况
2.业务场景逐渐复杂. 为了满足用户的需求, 单体应⽤也会越来越⼤. 各个业务代码之间的耦合度也会越来越⾼. 任何⼀个问题, 都需要整个项⽬重新构建, 发布
3.⼀个微小的问题, 可能会导致整个应⽤挂掉

我们从两个⽅⾯进⾏优化:
横向: 添加服务器,把单台机器变成多台机器的集群
纵向: 把⼀个应⽤, 按照业务进行拆分, 拆分为多个项目. 此架构也称为垂直架构

综上也可以引出集群与分布式

集群(cluster):是将⼀个系统完整的部署到多个服务器上, 每个服务器都能提供系统的所有服务, 多个服务器通过负载均衡调度完成任务. 每个服务器称为集群的节点(node)
分布式:是将⼀个系统拆分为多个⼦系统,多个⼦系统部署在多个服务器上,多个服务器上的⼦系统协同合作完成⼀个特定任务.

明白了集群与分布式之后,此时来理解微服务,其实就相当于是在分布式架构下,对一个大的服务再次进行细小的拆分。

综上:

分布式: 服务拆分, 拆了就⾏.
微服务 : 指⾮常微⼩的服务, 更细粒度的垂直拆分, 通常指不能再拆的服务
以下是3种不同角度的区别:
1.分布式架构侧重于压⼒的分散, 强调的是服务的分散化.
2.微服务侧重于能⼒的分散, 更强调服务的专业化和精细分⼯.
3.从实践的⻆度来看, 微服务架构通常是分布式服务架构, 反之则未必成⽴. 所以, 选择微服务通常意味着需要解决分布式架构的各种难题.

相关推荐
O***Z61644 分钟前
HeidiSQL导入与导出数据
java
毕设源码-朱学姐44 分钟前
【开题答辩全过程】以 老年公寓信息管理系统为例,包含答辩的问题和答案
java·spring boot
GoodStudyAndDayDayUp1 小时前
WIN11安装配置验证java\maven
java·开发语言·maven
一 乐1 小时前
游戏账号交易|基于Springboot+vue的游戏账号交易系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·游戏
u***1371 小时前
springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)
spring boot·后端·spring
程序员-周李斌1 小时前
LinkedList 源码深度分析(基于 JDK 8)
java·开发语言·数据结构·list
西岭千秋雪_1 小时前
Kafka服务端日志梳理
java·分布式·zookeeper·kafka
q***71011 小时前
跨域问题解释及前后端解决方案(SpringBoot)
spring boot·后端·okhttp
v***43171 小时前
SpringBoot中Get请求和POST请求接收参数详解
java·spring boot·spring