有疑问请咨询品儿:796513209
此文章适合初学者浅谈
一、什么是微服务
微服务是一种架构方式。
简单的说微服务就是一个庞大的业务系统,按业务组成部分拆分成若干个子系统。每一个子系统都是一个独立的应用,拥有独立的数据库,甚至使用不同的编程语言,可以说是像java中的解耦思想,每一个子系统都可插拔 ,子系统的宕机不会影响其他系统正常工作。
-
spring Cloud 为开发者提供了分布式系统(配置管理、服务发现、熔断、路由、微代理、控制总线、一次性token、分布式session、集群状态)
-
SpringCloud利用SpringBoot的开发便利性,简化了分布式系统基础设施的开发。
二、SpringCloud与SpringBoot之间的关系?
SpringBoot专注于快速方便的开发单个个体微服务。
SpringCloud是关注全局的微服务协调、整理、治理的框架,它将SpringBoot开发的单体整合并管理起来。
SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。
三、微服务架构优缺点
优点:
1、通过分解巨大单体式应用为多个服务方法解决了复杂性问题,每个微服务相对较小
2、每个单体应用不局限于固定的技术栈,开发者可以自由选择开发技术,提供API服务。
3、每个微服务独立的开发,部署
4、单一职责功能,每个服务都很简单,只关注于一个业务功能
5、易于规模化开发,多个开发团队可以并行开发,每个团队负责一项服务
6、改善故障隔离。一个服务宕机不会影响其他的服务
缺点:
1、微服务应用是分布式系统,由此会带来固有的复杂性。
2、服务地址目录,服务健康度,部署困难,服务依赖问题,数据库分区问题。
四、系统演进
模式1
模式2
模式3
五、微服务的核心基础
网关 、服务发现注册、配置中心、链路追踪、负载均衡、熔断
1、网关:路由转发+过滤等
2、服务注册与发现:调用和被调用方信息维护
3、配置中心:管理配置、动态更新
4、链路追踪:分析调用链路耗时
5、负载均衡器:分发负载
6、保护自己和调用方