微服务介绍

1.spring、spring boot、spring cloud的关系

spring作为J2EE的基石,一直都在快速的发展,相信大家都是对它很熟悉的。

spring Boot是spring的上层,可以理解为对spring的简化,能够快速构建spring应用。

spring cloud是spring boot的上层,可以理解为利用spring boot简化构建分布式应用。三者关系如下图所示

微服务介绍_第1张图片
spring、spring boot、spring cloud之间的关系

2.spring cloud的组成


微服务介绍_第2张图片
spring cloud的组成

如图所示,spring cloud主要由eureka、config、ribbon、zuul、hystrix组成

    Eureka:服务注册中心,主要由Eureka Server和Eureka client组成

    config:配置中心服务,主要是用于各个服务的配置管理

    ribbon:服务间的通信机制、负载均衡策略

    zuul:动态网关、路由

    Hystrix:熔断机制

此外还少不了我们的服务追踪 spring cloud sleuth + ZipKin

3. 对微服务的理解


微服务介绍_第3张图片
微服务的官方定义

    微服务是一种架构风格、和restful一样,都是一种架构风格。它是没有绝对性的、没有绝对标准的答案,是一种建议而已,所以在细节上可能就有不同的理解。

    1.它是一系列微小的服务共同组成;

    2.跑在自己的进程里;

    3.每个服务为独立的业务开发

    4.独立部署;

    5.分布式的管理。

spring cloud是一个开发工具集,包含了多个子项目。它主要利用spring boot的开发便利以及对Netflix开源组件的进一步封装。它简化了分布式开发。

4.对单体架构的理解

    单体架构的优点主要有:容易测试、容易部署

    缺点:开发效率低,一个团队都在一个项目里面开发、很容易代码冲突;

                代码维护难,项目代码庞大、代码相互之间依赖,不易于快速理解;

                部署不灵活,这里的不灵活是指有一处修改,就得整个大的项目重新打包,稳定性不够,影响使用。

                扩展性不够,不能针对某个并发高的功能模块单独部署多个服务器。

5.对分布式的定义

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

6.简单的微服务架构


微服务介绍_第4张图片
简单的微服务架构

7.微服务架构的基础框架/组件

1.服务注册发现

    微服务要通过一系列的微小服务构成,这些服务之间必然要通过某种机制进行通信关联起来,组合在一起提供服务,它们之间如何感知和调用,这里面就少不了服务注册发现。

    2.服务网关

        微服务除了内部服务之间的通信,必然还要提供给外部去访问。网关会对外屏蔽一些服务的细节,比如我后台的程序需要升级或者有变化什么的,但是我对外是要对用户无感知的。反向路由的功能,将外面的某个路由反向到内部的某个微服务。还可以做一些限流和容错、监控和日志的功能。也可以用来做一些安全认证、反爬虫。

    3.后端服务、前端服务

        后端服务也称为中间层服务Middle Tier Service,它在启动时就向注册服务表写入服务信息,前端服务就从注册服务表里面读取服务。

        前端服务也称为边缘服务Edge Service,的主要功能就是聚合(多个服务合一调用)、裁剪后端服务,然后暴露给外部调用。

            裁剪:根据不同的需求返回不同的数据,例如区分移动端和PC端的调用,返回不同的数据或者区分返回HTML还是json数据。

8.微服务的两大配方


微服务介绍_第5张图片
微服务的两大配方

你可能感兴趣的:(微服务介绍)