微服务技术概览

目录

1、微服务架构

2、微服务架构演变

2.1、单体架构

2.2、分布式架构

2.3、微服务

3、微服务技术对比

4、SpringCloud

5、服务拆分与远程调用

5.1、服务拆分

5.2、远程调用

6、微服务提供者与消费者


1、微服务架构

微服务技术概览_第1张图片

        注册中心:记录服务的IP、端口号以及功能

        配置中心:统一管理服务集群中的配置,实现配置的热更新

        服务网关:对用户身份做校验,同时将请求路由至相应服务

        分布式缓存:将数据库数据放入内存,为应对高并发,采用分布式结构

        分布式搜索:海量数据的搜索、统计和分析

        数据库:数据写操作、事务操作等

        消息队列:异步通信组件,降低服务的响应时间,提升整体系统的吞吐能力,提高并发

        分布式日志:用于系统运行状态记录,便于后续的故障分析、排查

        系统监控链路追踪:监控服务节点运行状态、CPU负载占用情况等

        利用持续集成工具进行服务的自动化配置

2、微服务架构演变

2.1、单体架构

 概念:将业务的所有功能集中在一个项目中开发,达成一个包部署

微服务技术概览_第2张图片

 优点:架构简单、部署成本低

 缺点:耦合度高、代码量庞大复杂

2.2、分布式架构

 概念:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务

微服务技术概览_第3张图片

 优点:耦合度低、有利于服务升级拓展

 缺点:架构复杂、难度大

 服务治理的关注点:

        1)服务拆分粒度

        2)服务集群地址的维护

        3)服务之间的远程调用

        4)服务健康状态的感知

2.3、微服务

 概念:经过良好架构设计的分布式架构方案

 优点:拆分粒度更小、服务更独立、耦合度更低

 缺点:架构非常复杂,运维、监控、部署难度提高

 特征:

        1)单一职责:微服务拆分粒度更小,每一个微服务对应唯一的业务能力,避免重复开发

        2)面向服务:微服务对外暴露接口

        3)自治:技术独立、数据独立、部署独立

3、微服务技术对比

 现有主流微服务框架:

Dubbo SpringCloud SpringCloudAlibab
注册中心 zookeeper、Redis Eureka、Consul Nacos、Eureka
服务远程调用 Dubbo协议 Feign(http协议) Dubbo、Feign
配置中心 SpringCloudConfig SpringCloudConfig、Nacos
服务网关 SpringCloudGateway、Zuul SpringCloudGateway、Zuul
服务监控和保护 dubbo-admin、功能弱 Hystrix Sentinel

 微服务实现方案:

微服务技术概览_第4张图片

4、SpringCloud

 功能:springCloud 集成了各种微服务功能组件,并基于 springBoot 实现了组件的自动装配。

微服务技术概览_第5张图片

 SpringCloud 与 SpringBoot 的兼容关系:

微服务技术概览_第6张图片

5、服务拆分与远程调用

5.1、服务拆分

 1)不同微服务,不要重复开发相同业务

 2)微服务数据独立,不要访问其他微服务的数据库

 3)微服务可以将自己的业务暴露接口,供其他微服务调用

5.2、远程调用

 1)目前有两个独立的微服务:

  • 根据订单id查询订单信息
  • 根据用户id查询用户信息

 2)需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回

微服务技术概览_第7张图片

 3)解决:订单查询微服务用户查询微服务发起远程调用——利用 RestTemplate

        1.在配置类中,注册 RestTemplate:

微服务技术概览_第8张图片

         2.利用 RestTemplate 组件,发起远程调用

微服务技术概览_第9张图片

6、微服务提供者与消费者

  • 服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)
  • 服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)

  提供者和消费者的角色是相对的,一个服务既可以是提供者,又可以是消费者

你可能感兴趣的:(微服务技术栈,spring,cloud,微服务)