一、SpringCloud之微服务介绍

1、微服务

James Lewis & Martin Fowler 2014年3月25日写的《Microservices》:微服务是一种架构风格。

  • 一系列微小的服务共同组成
  • 跑在自己的进程里
  • 每个服务为独立的业务开发
  • 独立部署
  • 分布式管理

一、SpringCloud之微服务介绍_第1张图片

微服务特点:异构

  • 不同语言
  • 不同类型的数据库

2、其他常见架构形态

  • 单体架构

优点:容易测试、容易部署

缺点:开发效率低、稳定性不高、代码维护难、扩展性不够、部署不灵活

一、SpringCloud之微服务介绍_第2张图片

  • 基于Ajax的前后端分离

一、SpringCloud之微服务介绍_第3张图片

  • 分布式

旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。

分布式和集群有什么区别:分布式是个工作方式,集群是个物理形态。一句话,就是:“分头做事”与“一堆人”的区别。

3、微服务架构的基础框架/组件

  • 服务注册发现:

客户端服务发现:B向注册中心注册,A通过注册中心拿到一堆B的地址,通过某种机制,从众多可用的B中挑出一个,然后通过IP地址找到B。

一、SpringCloud之微服务介绍_第4张图片

服务器端服务发现:B向注册中心注册,代理从众多可用的B里面挑选一个出来给A,然后A再根据IP地址去找B。

一、SpringCloud之微服务介绍_第5张图片

一、SpringCloud之微服务介绍_第6张图片

  • 服务网关(Service Gateway)

一、SpringCloud之微服务介绍_第7张图片

  • 后端通用服务(也称中间层服务Middle Tier Service)

后端在启动的时候会将地址信息注册到服务注册表里面。

  • 前端服务(也称边缘服务Edge Service)

前端服务通过查询注册表发现调用后端服务,作用:对后端服务做必要的聚合和裁剪后暴露给外部不同的设备。聚合:对多个API调用逻辑进行聚合,从而减少客户端的请求数(合二为一)。裁剪:刚好跟聚合相反,根据不同的需求,返回不同的术语。

 

一、SpringCloud之微服务介绍_第8张图片

4、微服务两大实现手段

  Dubbo Spring Cloud
服务注册中心 Zookeeper Spring Cloud Netflix Eureka
服务调用方式 RPC REST API
服务网关 Spring Cloud Netflix Zuul
服务跟踪 Spring Cloud Sleuth
断路器 不完善 Spring Cloud Netflix Hystrix
分布式配置 Spring Cloud Config
消息总线 Spring Cloud Bus
数据流 Spring Cloud Stream
批量任务 Spring Cloud Task

5、Spring Cloud

Spring Cloud官网

  • Spring Cloud是一个开发工具集,含了多个子项目

- 利用Spring Boot的开发便利

- 主要是基于对Netflix开源组件的进一步封装

  • Spring Cloud的服务调用方式

- REST

- Node.js的eureka-js-client

  • Spring Cloud 微服务架构图

一、SpringCloud之微服务介绍_第9张图片

你可能感兴趣的:(SpringCloud,SpringCloud微服务)