微服务
微服务架构是一种软件架构方式,将单体应用拆分为一组模块化的自治服务。
1. 主要特征
-
细粒度的服务拆分:根据业务边界拆分服务。
-
轻量级通信:基于 HTTP 的 RESTful API。
-
去中心化,独立开发和自治:这些服务可以使用不同的编程语言,以及不同的数据存储技术。
- 独立部署、运行和扩展。
2. 基础设施支撑
-
CI/CD 和自动化
-
Docker 容器
-
日志聚合,全链路监控
3. 微服务框架
(1)Dubbo
Dubbo 是阿里巴巴公司开源的一个高性能的分布式服务框架,它提供了三大核心能力:面向接口的远程过程调用,智能容错和负载均衡,以及服务自动注册与发现。
-
0. 容器启动运行服务提供者。
-
1. 服务提供者向注册中心注册自己提供的服务。
-
2. 服务消费者向注册中心订阅服务。
-
3. 注册中心将提供者的变更情况通知给消费者。
-
4. 消费者根据服务列表选择一个提供者进行调用。
-
5. 消费者和提供者在内存中累计调用次数和调用时间,每分钟定时发送一次统计数据到监控中心。
(2)Spring Cloud
Spring Cloud 是一个基于 Spring Boot 构建的集成框架,为开发人员提供了分布式开发工具包,如服务网关、服务注册与发现、配置中心、消息总线、负载均衡、断路器、日志监控等。
4. 容错机制
(1)降级
服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。
(2)限流
服务限流是指当系统资源不足以应对大量请求,为了保证有限的资源能够正常服务,因此对系统按照预设的规则进行流量限制。
(3)熔断
当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用,防止雪崩。