微服务是进化出来的。其实纵观软件研发中的所有技术,大多都是进化出来的,很少突然出现一个跟之前所有技术不想关的技术。只不过理论性的知识容易被忽视,大多的技术人员喜欢直奔主题,动手敲敲就是一个微服务,其实只是运用了微服务技术体系中的部分技术。
我们一直有这样的困扰,计算机领域的知识学习一直有一个难点就是:“解释一个概念需要用另外几个概念来解释,但是解释另外几个概念还需要其他概念来解释”,这不就是计算机领域的发展规律吗。所以我们都在讲究聚焦领域,每个领域都是深不见底,都有他的知识体系,都有他的技术栈。
其实有很多东西都是和微服务有关系的,至少说微服务都是需要借鉴这些东西落地,比如,微服务中提到了服务的集成和编排,这些东西在SOA、DDD中都存在,很难说这是微服务的东西还是SOA、DDD的。所以都是互相借鉴和参考,再进一步演化,慢慢的就进化出一些具有代表性的技术概念。
微服务不是银弹
当我们搞清楚了微服务是什么之后,就有助于我们进行运用了。首先可以肯定的是,微服务不是银弹,他解决不了所有问题,之前存在的问题依然存在。当我们想要尽可能的使用微服务架构时,那么我们紧接着就要回答别人提出的一系列在SOA架构中同样存在的问题,就要搞清楚如何回答别人提出的服务边界怎么划分问题,如果有GRASP、四色原型等辅助你来分析、设计,会工程化、科学化很多。
其实架构做了久了大家会发现一个潜规则,就是有时候方案没有明显的对与错,而是说服力的问题。你的方案是否经得起推敲,经得起别人的提问,能否回答别人的疑虑。
所以当你将这些应用技术了然于胸之后,你大可不必说出来,而是稍加转换下就可以慢慢影响你的架构方向
本文介绍一份阿里内部手册,它是从微服务架构概念出发,结合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接口
