微服务

  微服务架构是一种软件架构方式,将单体应用拆分为一组模块化的自治服务。

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)熔断

  当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用,防止雪崩。

posted @ 2019-08-15 16:22  PIPO2  阅读(189)  评论(0编辑  收藏  举报