Spring Cloud微服务入门(一)

微服务的演变过程

复制代码
//controller 视图交互层 前端数据处理传给service
//1.DAO @RequestBody userDAO
String id;String type;
{"id":"lcs",
"type":"lcs"}
//2.GET请求 findUserById?id=1&type=lcs
            @RequestParam String id
            @RequestParam String type
//3.POST请求 findUserById/{id}/{type}
            @Pathvariable String id
            @Pathvariable String type

单体架构

定义:功能、业务集中在一个发布包(war、jar)里,部署运行在同一个容器(tomcat)中。

在单体架构中,系统通常采用分层架构模式,按技术维度对系统进行划分,比如持久化层、业务逻辑层、表示层。

1.单体架构的优点:

2.系统的架构简单。

系统在开发、测试、部署时更方便。

单体架构存在的问题:

1.系统内通常以API的形式互相访问,耦合紧密导致难以维护。

2.各业务领域需要采用相同的技术栈,难以快速应用新技术。

3.对系统的任何修改都导致整个系统必须一起重新部署、升级,运维成本高。

4.在系统负载增加时,难以进行水平扩展。 当系统中一处出现问题,会影响整个系统。

垂直架构

第一个是为了业务之间互不影响

第二个是在研发团队的壮大后为了提高效率,减少组件之间的依赖。

优点:

项目拆分流量做了分流,解决了并发问题,同时可以对模块进行针对性优化

一个子项目出问题不会影响到其他子项目,提高容错率

缺点:

子项目间相互独立, 无法进行相互调用

子项目间相互独立, 存在重复造轮子问题

SOA架构

优点:

使用注册中心解决了服务间调用关系的自动调节

缺点:

服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )

服务关系复杂,运维、测试部署困难

微服务架构

微服务,又叫微服务架构。微服务架构是一种架构风格,它将一个复杂的应用拆分成多个独立自治的服务,服务与服务间通过松耦合的形式交互。

微服务特性:

每个微服务可独立运行在自己的容器里。

一系列独立运行的微服务共同构建起整个系统。

每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如内容管理、用户管理等。

可使用不同的语言与数据存储技术。

微服务之间通过轻量的通信机制进行通信,例如通过REST API进行调用。

全自动的部署机制。

微服务优点:

单个服务更易于开发、维护。

单个微服务启动比较快。

局部修改容易部署。

技术栈不受限。

按需伸缩。

微服务缺点:

复杂度高 微服务间通过REST、RPC等形式交互,需要考虑被调用方故障、过载、消息丢失等各种异常情况,代码逻辑更加复杂。

运维复杂 系统由多个独立运行的微服务构成,运维人员需要对系统有细致的了解才能够更好的运维系统。

影响性能 微服务之间进行交互过程中通信的延时,会对服务间的访问引起较大的影响。

相关推荐
Bs_MoneyMagnet9 小时前
基于springboot+vue的医疗健康便民服务平台的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring
CRMEB系统商城11 小时前
CRMEB标准版系统(Java)v3.1正式发布
java·spring·微信小程序·php·教育电商
汇智信科12 小时前
基于 Jmis 框架的制度与流程管控系统设计与应用|项目全生命周期管理
大数据·人工智能·微服务·云原生·汇智信科
行百里er13 小时前
Spring Insight 里收到的 Span 是怎么存下来的
spring boot·spring·监控
步行cgn14 小时前
Spring 的模块体系详解
java·数据库·spring
vx-程序开发15 小时前
【计算机毕设】基于Spring Boot的古城景区管理系统88564
java·数据库·spring boot·后端·spring·elasticsearch·课程设计
野生技术架构师16 小时前
从向量检索到混合搜索优化:Spring AI 2.0.1 + pgvector RAG 实战
java·人工智能·spring
Wang's Blog17 小时前
Java框架快速入门: Spring Security+OAuth2之实现UserDetails与GrantedAuthority深度定制
java·spring·mybatis
杨运交18 小时前
[070][Web模块]Spring MVC TOTP 二次认证拦截器:设计与源码深度解析
前端·spring·mvc
MetaLite18 小时前
Spring Cache只留注解-MetaLite如何二开缓存运行时
java·spring·缓存