一、什么是微服务
微服务是系统架构上的一种设计风格,将原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。
被拆分的每个小型服务都围绕着系统中的某一项或者一些耦合度较高的业务功能经行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。每个微服务可以使用不同的语言来编写。
二、微服务架构的9大特性 ##
- 服务组件化
- 按业务组织团队
- 做“产品”的太对
- 智能端点与哑管道
- 去中心化治理
- 去中心化管理数据
- 基础设施自动化
- 容错设计
演进试设计
三、Spring Cloud 简介
spring cloud 是一个基于spring boot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
spring cloud 包含了多个子项目:
- spring cloud config :配置管理工具,支持使用Git存储配置内容,可以使用它实现应用的外部化存储,并支持客户端配置信息刷新、加密/解密配置内容等。 - spring cloud netflix:核心组件,对多个netflix oss开源组件进行整合。 - Eureka:服务治理组件,包含服务注册中心、服务注册与发现机制的实现。 - Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和故障提供强大的容错能力。 - Ribbon:客户端负载均衡的服务调用组件。 - Feign:基于Ribbon和Hystix的声明试服务调用组件。 - 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代理中对QAuth2客户端请求的中继器。 - spring cloud sleuth:spring cloud应用的分布式跟踪实现,可以完美整合Zipkin。 - spring cloud ZooKeeper:基于zookeeper的服务发现与配置管理组件。 - spring cloud staters:spring cloud的基础组件,他是基于spring boot 风格项目的基础依赖模块。 - spring cloud CLI:用于在groovy中快速创建spring cloud应用的spring boot CLI插件 - 。。。。。。
记录摘自《spring cloud 微服务实战》