一、SpringCloud组件实战系列
SpringCloud--Eureka注册中心
SpringCloud--Ribbon负载均衡
SpringCloud-Hystrix熔断、限流、降级
SpringCloud-Feign
SpringCloud-GateWay网关
SpringCloud-Config配置中心Git+数据库实现
SpringCloud-Stream消息通信
二、SpringCloud组件官网系列
SpringCloud官方文档 SpringCloud中文网
三、架构的演进
轻量级、灵活,甚至于 Serverless(无服务)架构
由单体应用 ——> 垂直分层 ——> 面向服务SOA(具体应用例如:Dubbo) ——> 微服务 ——> Serverless(无服务)
四、微服务架构优缺点
首先微服务架构的核心思想是“微”,项目的拆分粒度相对较小,更能提现出单一职责、开发耦合度低、微小的功能可以独立部署、拓展灵活性强、升级改造影响范围小。
微服务的优点:
1、微服务很小,便于特定的功能聚焦
2、微服务很小,每个微服务都可以被一个小团队独立实施(开发、测试、部署上线、运维),团队合作便于一定程度解耦、方便敏捷开发。
3、微服务很小,便于重用和模块之间的组装
4、微服务独立,不同的微服务可以使用不同的语言开发,松耦合
5、微服务架构下,方便引入新技术,同时方便更好的实现DevOps开发运维一体化
微服务缺点:
1、微服务架构下,分布式随着服务数量的增加,管理将越加复杂
2、微服务架构下,分布式链路跟踪、分布式事务难。
五、微服务架构中的概念
1、服务注册与发现
服务注册:服务提供者将提供的服务信息(服务器ip、端口、服务访问协议等)注册到注册中心
服务发现:服务消费者从注册中心获取实时的服务列表,根据一定的策略选择一个服务访问
2、负载均衡
负载均衡即将请求的压力分配到多个服务器,以此来提供服务的性能、可靠性。
3、熔断、限流、降级
熔断:即断路保护,在微服务中上游服务因访问压力过大响应变慢或失败,上游服务为保证整体可用性,可以暂时切断对下游服务的调用,牺牲局部保全整体的一种措施。针对下游服务处理。
限流:高并发的系统保护利器,当突然的高并发流量来袭,进行控制并发/请求量,一旦达到某个极限值,其余的请求拒绝服务或者排队等待。
降级:服务降级是从整体符合考虑,由于某些服务调用造成整体系统缓慢或者崩溃,而采用虚假的本地服务进行返回,服务降级有一定的代码侵入。
4、链路追踪
链路追踪:就是对一次请求设计的很多分物语链路进行日志记录、性能监控。
5、Api网关
六、SpringCloud微服务
SpringCloud是一系列框架的有序集合(规范),利用SpringBoot开发的便利性简化了分布式系统基础设施的开发,如服务发现与注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
核心组件如下表: