第一章 基础知识

什么是微服务架构

“微服务”一词源于Martin Fowler的名为Microservices的博文,可以在他的官方博客上找到:http://martinfowler.com/articles/microservices.html

简单说,微服务是系统架构上的一种设计风格,将原本一个独立的系统拆分成多个小型服务,这些小型服务在各自的进程中运行,服务之间基于http的RESTful API进行通信协作

在微服务中,通常会使用以下两种服务调用方式:

  1. 使用HTTP的RESTful API或轻量级的消息发送协议,实现信息传递与服务调用的触发
  2. 通过在轻量级消息总线上传递消息,类似RabbitMQ等一些提供可靠异步交换的中间件

Spring cloud 简介

Spring Cloud是一个基于spring boot 实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式

Spring Cloud 包含了多个子项目:

  • Spring Cloud Config:配置管理工具,支持Git存储配置内容,可以实现应用配置的外部化存储,并支持客户端配置信息刷新、加密/解密配置内容等
  • Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合:
    • Eureka:服务治理组件,包含服务注册中心、服务注册与发现机制的实现
    • Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力
    • Ribbon:客户端负载均衡的服务调用组件
    • Fegin:基于Ribbon和Hystrix的声明式服务调用组件
    • Zuul:网关组件,提供智能路由、访问过滤等功能
    • Archaius:外部化配置组件
  • Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等
  • Spring Cloud Cluster:针对ZooKeeper、Redis、Hazelcast、Consul的选举算法和通用状态模式的实现
  • Spring Cloud Cloudfoundry:与 Pivotal Cloudfoundry的整合支持
  • Spring Cloud Consul:服务发现与配置管理工具
  • Spring Cloud Stream:通过redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送和接受消息
  • Spring Cloud AWS:用于简化整合Amazon Web Service的组件
  • Spring Cloud Security:安全工具包,提供在Zuul代理中对OAuth2客户端请求的中继器
  • Spring Cloud Sleuth:Spring Cloud 应用的分布式跟踪实现,可以完美整合Zipkin
  • Spring Cloud ZooKeeper:基于ZooKeeper的服务发现与配置管理组件
  • Spring Cloud Starters:Spring Cloud 的基础组件,基于Spring Cloud风格项目的基础依赖模块
  • Spring Cloud CLI:用于在Groovy中快速创建Spring Cloud应用的Spring Cloud CLI插件
  • ···

 

posted on 2018-11-28 23:05  胡子就不刮  阅读(93)  评论(0编辑  收藏  举报

导航