微服务基础概念及相关技术组件

  基础概念:

  微服务架构的风格,就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTP RESTFUL API 。这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来

独立部署 这些服务可以使用不同的编程语言,以及不同数据存储技术,以保证最低限度的集中式管理。

  特点:

  1.微服务单元按业务来划分(将一个个小的功能模块划分成一个个服务,每个服务采用的开发语言、持久层技术都可以不相同

  2.微服务通过 HTTP 来互相通信(restTemplate、微服务中的每个服务都是生产者和消费者、服务和服务之间通过resultful来调用)

  3.微服务的数据库独立(每个服务对应一个单独的数据库,互不关联)

  4.微服务的自动化部署(通过docker技术来部署微服务)

  5.服务集中化管理(微服务需要一个服务管理中心来管理服务,通过服务注册、服务发现、服务调用来实现业务功能)

  6.分布式架构

  7.熔断机制(当某个服务失效时,熔断机制会判断这个服务是否失效、如果失效,则不处理该服务的业务逻辑功能、直接返回异常json信息,但是在断开一段时间后会有一个半打开状态,测试部分接口是否可以走通,如果可以走通 说明服务恢复正常,关闭熔断器。如果不能走通则继续开启熔断器)

  

  世界上没有没有缺点的技术,下面是微服务的一些缺点:

  1.微服务的复杂度(微服务跟一般单体服务相比较要复杂的多)

  2.微服务中采用分布式事务(两个服务相关联,事务的一致性)

  3.服务的划分(功能难以划分)

  4.服务的部署(部署的难度较高,一般使用docker自动化部署项目)

  

  微服务技术方案:

  Spring Cloud Config :服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其他服务向配置中心读取配置。 SpringCloud Config 使得服务的配置统一管理 并可以在不人为重启服务的情况下进行配置文件的刷新。

  Spring Cloud Netflix :它是通过包装了 Netflix 公司的微服务组件实现的,也是SpringCloud 核心的核心组件,包括 Eureka Hystrix Zuul Archaius 等。

   Eureka :服务注册和发现组件

   Hystrix :熔断器组件 Hystrix 通过控制服务的 API 接口的熔断来转移故障,防止微服务系统发生雪崩效应。另外, Hystrix 能够起到服务限流和服务降级的作用。使用Hystrix Dashboard 组件监控单个服务的熔断器的状态,使用 Turbine 组件可以聚合多

个服务的熔断器的状态

  Zuul 能路由网关组 Netflix Zuul能够起到智能路由和请求过滤的作用,是服务接口统一暴露 关键模块,也是安全验证、权限控制的一道门。

  Feign 声明式远程调度组件

  Ribbon 负载均衡组件。

  Archaius :配置管理 API 的组件, 一个基于 Java 的配置管理库主要用于多配置的动态获取。  Spring Cloud Bus 消息总线组件,常和 Spring Cloud Config 配合使用,用于动态新服务的配置。

  Spring Cloud Sleuth :服务链路追踪组件,封装了 Dapper Zipkin, Kibina 等组件,可以实时监控服务的链路调用情况。

  Spring Cloud Data Flow :大数据操作组件, Spring Cloud Data Flow SpringXD替代品,也是 个混合计算的模型,可以通过命令行的方式操作数据流

  Spring Cloud Security 安全模块组件,是对 Spring Security 封装,通常配合 0Auth2使用来保护微服务系统的安全。

  Spring Cloud Consule :该组件是 Spring Cloud Consul 的封装,和 ureka 类似,它是一个服务注册和发现组件

  Spring Cloud Zookeeper 该组件是 Spring Cloud Zookeeper 封装,和 Eureka Consul相似,用于服务的注册和发现

  Spring Cloud Stream :数据流操作组件,可以封装 Redis RabbitMQ Kafka 等组件实现发送和接收消息等。

  Spring Cloud CLI :该组件是 Spring Cloud Spring Boot CLI 的封装,可以让用户以命令行方式快速运行和搭建容器

  Spring Cloud Task 该组件基于 Spring Task ,提供了任务调度和任务管理的功能。 

  Spring Cloud Connectors 用于 Paas 云平台连接到后端。

  

猜你喜欢

转载自www.cnblogs.com/qiuhx/p/10471794.html
今日推荐