1. 微服务简介
1.1 什么是微服务架构
- 微服务架构是系统架构上的一种设计风格
- 将大系统拆分红N个小型服务
- 这些小型服务都在各自的线程中运行
- 小服务间经过HTTP协议进行通讯
- 有本身的数据存储、业务开发、自动化测试和独立部署机制
- 能够由不一样语言编写
小结:微服务架构的思想,不仅是停留在开发阶段,它贯穿了设计,研发,测试,发布,运维等各个软件生命周期。git
2. 架构体系

架构样例:
github
2.1 微服务发布--持续集成

3. 微服务架构九大特性
- 服务组件化
-- 组件是可独立更换、升级的单元。就像PC中的内存,CPU同样。
- 按业务组织团队
-- 要求人员全栈技能
- 作“产品”的态度
-- 对整个产品生命周期负责,而不是作“项目”交付态度
- 智能端点与哑管道
-- 微服务间的通信方式:
--- HTTP的RESTful API
--- MessageMQ消息队列
- 去中心化治理
--不是每个问题都是钉子,不是每个解决方案都是锤子。
- 去中心化数据管理
--独立维护各服务数据存储,尽可能使服务间“无事物”调用,经过补偿机制维护数据一致性问题
- 基础设施自动化
-- 自动化测试
-- 自动化部署
- 容错设计
-- 每一个服务实现监控和日志组件,好比服务状态,断路器状态,吞吐量,网络数据等关键数据仪表盘
- 演进式设计
--初期单体,逐步拆分,抽取公共组件
4. 微服务选型
-
Dubbo 是阿里多年构建生产级分布式微服务的技术结晶,服务治理能力很是丰富,在国内技术社区具备很大影响力,目前 github 上有超过 16k 星。Dubbo 本质上是一套基于 Java 的 RPC 框架,当当 Dubbox 扩展了 Dubbo 支持 RESTful 接口暴露能力。spring
-
Dubbo 主要面向 Java 技术栈,跨语言支持不足是它的一个弱项,另外由于治理能力太丰富,以致于这个框架比较重,彻底用好这个框架的门槛比较高,可是若是你的企业基本上投资在 Java 技术栈上,选 Dubbo 可让你在服务框架一块站在较高的起点上,无论是性能仍是企业级的服务治理能力,Dubbo 都作的很出色。网络
- 新浪微博开源的 Motan(GitHub 4k stars)也不错,功能和 Dubbo 相似,能够认为是一个轻量裁剪版的 Dubbo。
5. Spring Cloud 介绍
-
Spring Cloud技术栈提供了分布式系统和微服务中所须要的约大多数公共模块和功能架构
-
Spring Cloud的出现,能够说是对微服务架构巨大的支持和强有力的后盾负载均衡
- 使用Spring Cloud就像直接购买品牌机同样,在Spring 社区的整合下,作了大量的兼容性测试,拥有更好的稳定性。

6. Spring Cloud 版本管理
http://projects.spring.io/spring-cloud/框架

7. Spring Cloud 组件
- 微服务基础
- 微服务构建 Spring Boot
- 服务治理 Spring Cloud Eureka
- 客户端负载均衡 Spring Cloud Ribbon
- 服务容错保护 Spring Cloud Hystrix
- 声明式服务调用 Spring Cloud Feign
- Api网关服务 Spring Cloud Zuul
- 分布式配置中心 Spring Cloud Config
- 消息总线 Spring Cloud Bus
- 消息驱动的微服务 Spring Cloud Stream
- 分布式服务跟踪 Spring Cloud Sleuth