Spring Cloud 01 - 微服务概述
微服务概述
文章目录
- 微服务概述
- 一:分布式和微服务
- 1、什么是微服务?
- 2:什么是分布式
- 3、联系与区别是什么?
- 2:最终技术搭配方案
一:分布式和微服务
1、什么是微服务?
微服务架构是团队面对互联网产品爆发式增长的最优选择,解决快速迭代、高可靠和高可用等问题
把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律
每一个模块用5-9个小团队来维护,减少沟通成本提高协作效率更好地实现快速迭代和弹性扩展。
采用微服务架构改造引入各种复杂性,如部署工作量的增加、复杂链路的监控难题,为微服务而微服务只会得不偿失。
在实施的过程中不能简单的使用某些个微服务框架或者组件一蹴而就,而是需要将业务、技术和运维有机结合起来配合同步实施,并在此过程中还需要趟过很多的坑才能够取得成功。
复杂业务拆分可能无法一步到位,因为复杂每个业务并不一定只能拆成一个组件,庞大的业务拆分出相对独立和庞大的业务,但如果业务较小而又比较多,且类型相似也可以不用着急拆分。
2:什么是分布式
对于分布式架构根据设计期的架构思想和运行期的不同结构分为:面向服务架构、分布式服务架构、微服务架构。
1、面向服务架构︰以业务服务的角度和服务总线的方式(一般是WebService与ESB)考虑系统架构和企业IT治理;
2、分布式服务架构:基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;
3.微服务架构:微服务架构可以看做是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。
统的企业集成领域的EAI架构模式,本身还是各个系统独立部署,但是各系统之间的部分业务使用特定的技术打通,因此可以看做是单体和分布式之间的过渡状态。
3、联系与区别是什么?
先理清楚五个概念
- 分布式:分散压力;不同模块部署在不同服务器上;
- 微服务:分散能力。
- 分布式作用:分布式解决网站高并发带来问题;
- 集群:相同的服务; 多台服务器部署相同应用构成一个集群;
总结:分布式是个工作方式,微服务是一种架构风格。
都是将同一个大系统中不同的子模块进行分开部署。
已达到一个低耦合,提高并发量,提高系统可以水平伸缩的能力,同时它们和其他模块之间通讯也都是基于rpc进行通讯调用。
微服务是一个单独的服务包含了一个服务从控制层到业务层到持久层该有的东西它都必须要有,前端代码也可以自己提供,并微服务的持久层数据库是私有的并不会对其他服务共享。
而分布式可以仅仅只有控制层和业务层,可以不需要自己的数据库和前端,可以和其他模块共享一个数据库。
2:最终技术搭配方案
Alibaba Nacos
替换====> Eureka + Config + Bus
位置 | 组件名称 | 作用 |
---|---|---|
注册中心 | Spring Cloud Alibaba Nacos | 服务的发现和注册 |
配置中心 | Spring Cloud Alibaba Nacos | 动态配置管理 |
负载均衡 | Sprign Cloud Ribbon | 进行服务的负载均衡调用 |
声明式HTTP客户端 | Spring Cloud Feign | 调用远程服务 |
服务容错 | Spring Cloud Alibaba Sentinel / Hystrix | 限流,降级,熔断 |
API网关 | Spring Cloud GateWay | webFlux编程模式网关 |
分布式事务 | Spring Cloud Alibaba Seata | 分布式事务 |