微服务是进化出来的。其实纵观软件研发中的所有技术,大多都是进化出来的,很少突然出现一个跟之前所有技术不想关的技术。只不过理论性的知识容易被忽视,大多的技术人员喜欢直奔主题,动手敲敲就是一个微服务,其实只是运用了微服务技术体系中的部分技术。
我们一直有这样的困扰,计算机领域的知识学习一直有一个难点就是:“解释一个概念需要用另外几个概念来解释,但是解释另外几个概念还需要其他概念来解释”,这不就是计算机领域的发展规律吗。所以我们都在讲究聚焦领域,每个领域都是深不见底,都有他的知识体系,都有他的技术栈。
其实有很多东西都是和微服务有关系的,至少说微服务都是需要借鉴这些东西落地,比如,微服务中提到了服务的集成和编排,这些东西在SOA、DDD中都存在,很难说这是微服务的东西还是SOA、DDD的。所以都是互相借鉴和参考,再进一步演化,慢慢的就进化出一些具有代表性的技术概念。
微服务不是银弹
当我们搞清楚了微服务是什么之后,就有助于我们进行运用了。首先可以肯定的是,微服务不是银弹,他解决不了所有问题,之前存在的问题依然存在。当我们想要尽可能的使用微服务架构时,那么我们紧接着就要回答别人提出的一系列在SOA架构中同样存在的问题,就要搞清楚如何回答别人提出的服务边界怎么划分问题,如果有GRASP、四色原型等辅助你来分析、设计,会工程化、科学化很多。
其实架构做了久了大家会发现一个潜规则,就是有时候方案没有明显的对与错,而是说服力的问题。你的方案是否经得起推敲,经得起别人的提问,能否回答别人的疑虑。
所以当你将这些应用技术了然于胸之后,你大可不必说出来,而是稍加转换下就可以慢慢影响你的架构方向
本文介绍一份阿里内部手册,它是从微服务架构概念出发【+jcc4261获取】,结合Spring Cloud的解决方案,深入浅出地剖析了其在构建微服务架构中所需的各个基础设施和技术要点,非常适合正在或打算实施微服务的团队作为参考手册。
手册涵盖微服务构建、服务治理、客户端负载均衡、服务容错保护、声明式服务调用、API网关服务、分布式配置中心、消息总线、消息驱动、分布式服务跟踪等诸多技术栈。下面是它的主要内容:
Spring Cloud微服务实战
1.基础知识
- 什么是微服务架构
- 与单体系统的区别
- 如何实施微服务
- 为什么选择Spring Cloud
- Spring Cloud简介
2.微服务构建: Spring Boot
-
框架简介
-
快速入门
-
项目构建与解析
-
实现RESTfulAPI
-
配置详解
-
配置文件
-
自定义参数
-
参数引用
-
使用随机数
-
命令行参数
-
多环境配置
-
加载顺序
-
监控与管理
-
初识actuator
-
原生端点
3.服务治理: Spring Cloud Eureka
-
服务治理
-
Netflix Eureka
-
搭建服务注册中心
-
注册服务提供者
-
高可用注册中心
-
服务发现与消费
-
Eureka详解
-
基础架构
-
服务治理机制
-
源码分析
-
配置详解
-
服务注册送配置
-
服务实例类配置
-
跨平台支持
4.客户端负载均衡: Spring Cloud Ribbon
-
客户端负载均衡
-
RestTemplate详解
-
GET请求
-
POST请求
-
PUT请求
-
DELETE请求
-
源码分析
-
负载均衡器
-
负裁均衡策略
-
配置详解
-
自动化配置
-
Camden版本对RibbonClient配置的优化
5.服务容错保护: Spring Cloud Hystrix
-
快速入门
-
原理分析
-
工作流程
-
断路器原理
-
依赖隔离
-
使用详解
-
创建请求命令
-
定义服务降级
-
异常处理
-
命令名称、分组以及线程池划分
-
请求缓存
-
请求合并
-
属性详解
-
Command属性
-
collapser属性
-
threadPool属性
-
Hystrix仪表盘
-
Turbine集群监控
-
构建监控聚合服务
-
与消息代理结合
6.声明式服务调用: Spring Cloud Feign
-
快速入门
-
参数绑定
-
继承:特性
-
Ribbon配置
-
全局配置
-
指定服务配置
-
重试机制
-
Hystrix配置
-
全局配置
-
禁用Hystrix
-
指定命令配置
-
服务降级配置
-
其他配置
7.API网关服务: Spring Cloud Zuul
-
快速入门
-
构建网关
-
请求路由
-
请求过滤
-
路由详解
-
传统路由配置
-
服务路由配置
-
服务路由的默认规则
-
自定义路由映射规则
-
路径匹配
-
路由前缀
-
本地跳转
-
Cookie与头信息
-
Hystrix和Ribbon支持
-
过滤器详解
-
过滤器
-
请求生命周期
-
核心过滤器
-
异常处理
-
禁用过滤器
-
动态加载
-
动态路由
-
动态过滤器
8.分布式配置中心: Spring Cloud Config
-
快速入门
-
构建配置中心
-
配置规则详解
-
客户端配置映射
-
服务端详解
-
基础架构
-
Git配置仓库
-
SVN配置仓库
-
本地合库
-
本地文件系统
-
健康监测
-
属性覆盖
-
安全保护
-
加密解密
-
高可用配置
-
客户端详解
-
URI指定配置中心
-
服务化配置中心
-
失败快速响应与重试
-
获取远程配置
-
动态刷新配置
9.消息总线: Spring Cloud Bus
-
消息代理
-
RabbitMQ实现消息总线
-
基本概念
-
安装与使用
-
快速入门
-
整合Spring Cloud Bus
-
原理分析
-
指定刷新范围
-
架构优化
-
RabbitMQ配置
-
Kafka实现消息总线
-
Kafka简介
-
快速入门
-
整合Spring Cloud Bus
-
Kafka配置
-
深入理解
-
源码分析
-
其他消息代理的支持
10.消息驱动的微服务: Spring Cloud Stream
-
快速入门
-
核心概念
-
绑定器
-
发布-订阅模式
-
消费组
-
消息分区
-
使用详解
-
开启绑定功能
-
绑定消息通道
-
消息生产与消费
-
响应式编程
-
消费组与消息分区
-
消息类型
-
绑定器详解
-
绑定器SPI
-
自动化配置
-
多绑定器配置
-
RabbitMQ与Kafka绑定器
-
配置详解
-
基础配置
-
绑定通道配置
-
绑定器配置
11.分布式服务跟踪: Spring Cloud Sleuth
-
快速入门
-
准备工作
-
实现跟踪
-
跟踪原理
-
抽样收集
-
与Logstash整合
-
与Zipkin整合
-
HTTP收集
-
消息中间件收集
-
收集原理
-
数据存储
-
API接口