概述
什么是微服务
微服务是一个小的、松耦合的分布式服务
通过将大型代码分解为小型的精确定义的部分。帮助解决大型代码库中传统的复杂问题
分解和分离应用程序的功能,使它们完全彼此独立
微服务特性
应用程序逻辑分解为具有明确定义了职责范围的细粒度组件,这些组件项目协调提供解决方案微服务通信基于一些基本的原则,并采用http和json进行通信服务的底层采用什么技术实现没有影响便于团队合作开发
Spring与微服务的关系
SpringBoot包含了Spring的核心特性,剥离了许多“企业”特性,二提供了一个基于Java的、面向REST的微服务框架。
SpringBoot只需要一些注解既可构建一个可打包和部署的REST微服务这个微服务并不需要外部的应用容器 Spring Cloud封装了多个流行的云管理微服务框架
微服务模式
核心微服务开发模式微服务路由模式微服务客户端弹性模式微服务安全模式微服务日志记录和跟踪模式微服务构建和部署模式
微服务开发模式
服务粒度通信协议接口设计服务的配置管理服务之间的事件处理
使用事件来传达服务之间的状态和数据变更
微服务的路由模式
负责处理客户端的应用程序,是用用程序发现服务的位置并路由到服务
服务发现服务路由
微服务客户端弹性模式
防止单个服务或服务实例中的问题级联暴露给服务的消费者
负载均衡断路器模式后备模式舱壁模式
微服务的安全模式
验证授权凭据管理和传播:基于令牌的安全标准来获取可以从一个服务嗲用传递到另一个服务调用的令牌,以验证和授权用户
OAuth2Json Web Token(JWT)
微服务日志记录和跟踪模式
日志关联:多个服务的日志关联到一起日志聚合:将微服务生成的所有日志合并到一个可查询的数据库中微服务跟踪
微服务构建和部署模式
构建和部署管道基础设置即代码不可变服务器凤凰服务器
使用Spring Cloud构建微服务
开发模式
核心微服务模式:Spring Boot配置管理:Spring Cloud Config异步消息处理:Spring Cloud Stream
路由模式
服务发现模式:Sping Cloud/Netflix Ribbon服务路由模式:Spirng Cloud/Netflix Zuul
客户端弹性模式
负载均衡:Spring Cloud/Netflix Ribbon断路器模式:Spring Cloud/Netflix Hystrix后备模式:Spring Cloud/Netflix Hystrix舱壁模式模式:Spring Cloud/Netflix Hystrix
构建部署模式
持续集成:Travis CI基础设施即代码:Docker不可变服务器:Docker凤凰服务器:Travis CI/Docker
日志记录模式
日志关联:Spring Cloud Sleuth日志聚合:Spring Cloud Sleuth(与Papertrail)微服务跟踪:Spring Cloud Sleuth/Zipkin
安全模式
授权:Spring Cloud Security/OAuth2验证:Spring Cloud Security/OAuth2凭据管理和传播:Spring Cloud Security/OAuth2/JWT