pragmatic-java-engineer
  • 引言
  • 第一章 后端技术导言
    • 1.1 后端基础设施
    • 1.2 Java后端技术概览
    • 1.3 如何学习后端技术
  • 第二章 Java项目工程化
    • 2.1 项目构建
    • 2.2 代码版本控制
    • 2.3 代码质量保证
  • 第三章 开发框架
    • 3.1 依赖注入
    • 3.2 对象关系映射
    • 3.3 日志
    • 3.4 Web MVC
    • 3.5 总结
  • 第四章 Spring
    • 4.1 Spring核心组件
    • 4.2 Spring数据操作框架
    • 4.3 使用Spring Boot快速开发
    • 4.4 Spring常用组件
    • 4.5 总结
  • 第五章 数据存储
    • 5.1 关系型数据库-MySQL
    • 5.2 非关系型数据库
    • 5.3 缓存
    • 5.4 搜索引擎-Elasticsearch
    • 5.5 总结
  • 第六章 数据通信
    • 6.1 RESTful架构风格
    • 6.2 远程过程调用-RPC
    • 6.3 消息中间件
    • 6.4 总结
  • 第七章 Java编程进阶
    • 7.1 Java内存管理
    • 7.2 Java网络编程
    • 7.3 Java并发编程
    • 7.4 Java开发利器
    • 7.5 Java新版本特性
    • 7.6 总结
  • 第八章 性能调优
    • 8.1 调优准备
    • 8.2 性能分析
    • 8.3 性能调优
    • 8.4 总结
  • 第九章 安全技术
    • 9.1 Java加密
    • 9.2 安全HTTP - HTTPS
    • 9.3 Web安全
  • 附录A: 代码构建常用命令
  • 附录B: Git常用命令
  • 附录C: MySQL常用命令
  • 附录D: MongoDB常用命令
  • 附录E: Java调优常用命令
  • 附录F: 如何应对在线故障
  • 附录G: 架构简明指南
Powered by GitBook
On this page
  1. 第四章 Spring

4.5 总结

本章讲述了Spring Core以及几个常用组件的使用。除了这些之外Spring中还有其他非常多的组件都提供了各个方面的功能封装,如:

  • Spring Security: 安全、权限控制。

  • Spring Retry: 重试机制的封装框架。

  • Spring OAuth:OAuth实现框架。

  • Spring JMS:JMS的封装。

  • Spring AMQP: AMQP的使用封装框架。

  • Spring Rabbit: RabbitMQ的使用封装框架。

额外地,这里对目前非常火热的Spring Cloud做一下简单介绍。

Spring Cloud给我们构建分布式系统提供了一整套开发工具和框架。现在很多公司和团队都是基于Spring Cloud这一套东西在做微服务实现。不过,Spring Cloud包含很多子项目,想要吃透这些得花不小的成本。

Spring Cloud的主要子项目如下:

  • Spring Cloud Config: 统一配置中心,类似于前文说过的Disconf, 不过其配置文件是存储在版本管理系统如Git、SVN上的。其配置的实时在线更新则需要依赖Spring Cloud Bus。

  • Spring Cloud Security: 提供了OAuth2客户端的负载均衡以及认证header等安全服务,可以做为API网关的实现。

  • Spring Cloud Consul/Zookeepr: 服务统一发现、注册、配置服务。类似于Dubbo。

  • Spring Cloud Bus: 提供了服务之间通信的分布式消息事件总线,主要用来在集群中传播状态改变(如配置改动)。

  • Spring Cloud Sleuth: 分布式跟踪系统, 能够追踪单次请求的链路轨迹以及耗时等信息。

此外,使用Spring Cloud Netflix则能够集成使用Netflix的各个组件构建服务。Netflix的主要组件如下:

  • Zuul:这是Netflix所有后端服务最前端的一道门,也就是我们上面说的API网关, 主要包含了以下功能:

    • 认证授权和安全:识别合法的外部请求,拒绝非法的。

    • 监控:跟踪记录所有有意义的数据以便于给我们一个精确的产品视图。

    • 动态路由:根据需要动态把请求路由到合适的后端服务上。

    • 压力测试:渐进式的增加对集群的压力直到最大值。

    • 限流:对每一种类型的请求都限定流量,拒绝超出的请求。

    • 静态响应控制:对于某些请求直接在边缘返回而不转发到后端集群。

    • 多区域弹性:在AWS的多个region中进行请求路由。

  • Eureka: 是Netflix的服务注册发现服务,类似于Dubbo的功能。包括负载均衡和容错。

  • Hystrix:Hystrix是一个类库。基于命令模式,实现依赖服务的容错、降级、隔离等。在依赖多个第三方服务的时候非常有用。此外,还可以通过自定义实现Dubbo的filter来给Dubbo添加Hystrix的特性支持。

Previous4.4 Spring常用组件Next第五章 数据存储

Last updated 1 year ago