如何正确使用微服务?这篇微服务实战笔记给你答案!

本篇为Java/Spring开发者提供实际建议及如何构建基于微服务的应用程序的示例。书中涵盖微服务架构、Spring Boot和Spring Cloud的使用方法,并介绍了如何通过它们实现服务验证、事件驱动架构等功能。

什么是微服务

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”(Microservices)。

尽管“微服务”这种架构风格没有精确的定义,但其具有一些共同的特性,如围绕业务能力组织服务、自动化部署、智能端点、对语言及数据的“去集中化”控制等等。微服务架构的思考是从与整体应用对比而产生的。

通常,在一家公司随着业务需求的增长为逐步发展(自然增长)的过程中,前期往往是以单块架构的方式来组织系统的。因为对于软件的初期构建来说,单块架构的方式是最容易且最高效的。但是若干年(甚至是几个月)后,受限于前期既有单块软件系统内部耦合性,再向该系统加新功能变得越来越艰难。

今天,我们就一起来学习十年架构师的Spring微服务实战笔记,相信你一定能够获得你想要的知识要点~~~

第1章:欢迎进入云世界,Spring

  • 1.1 什么是微服务
  • 1.2 什么是Spring, 为什么它与微服务有关
  • 1.3 在本书中读者会学到什么
  • 1.4 为什么本书与你有关
  • 1.5 使用Spring Boot来构建微服务
  • 1.6 为什么要改变构建应 用的方式
  • 1.7 云到底是什么
  • 1.8 为什么是云和微服务
  • 1.9 微服务不只是编写代码
  • 1.10 使用Spring Cloud构建微服务

     

第1章会介绍微服务架构为什么是构建应用程序,尤其是基于云的应用程序的重要相关方法。

第2章:使用SpringBoot构建微服务

  • 2.1 架构师的故事:设计微服务架构
  • 2.2 何时不应该使用微服务
  • 2.3 开发人员的故事:用Spring Boot和Java构建微服务
  • 2.4 DevOps工程师的故事构建运行时的严谨性

     

第2章将引导读者了解如何使用Spring Boot构建第一个基于REST的微服务。这一章将介绍如何通过架构师、应用工程师和DevOps工程师的角度来审视微服务。

第3章:使用Spring Cloud配置服务器控制配置

  • 3.1 管理配置 (和复杂性)
  • 3.2 构建 Spring Cloud配置服务器
  • 3.3 将Spring Cloud Config与Spring Boot客户端集成
  • 3.4 保护敏感的配置信息

     

第3章会介绍如何使用SpringCloudConfig管理微服务的配置。SpringCloudConfig可帮助开发人员确保服务的配置信息集中在单个存储库中,并且在所有服务实例中都是版本控制和可重复的。

第4章:服务发现

  • 4.1 我的服务在哪里
  • 4.2 云中的服务发现
  • 4.3 构建Spring Eureka服务
  • 4.4 通过 Spring Eureka注册服务
  • 4.5 使用服务发现来查找服务

     

第4章介绍第一个微服务路由模式一服务发现。 在这一章中, 读者将学习如何使用Spring Cloud和Netlix的Eureka服务,将服务的位置从客户的使用中抽象出来。

第5章:使用 Spring Cloud和Netlix Hystrix的客户端弹性模式

  • 5.1 什么是客户端弹性模式
  • 5.2 为什么 客户端弹性很重要
  • 5.3 进人Hystrix 107
  • 5.4 搭建许可 服务器以使用Spring Cloud和Hystrix
  • 5.5 使用Hystrix 实现断路器
  • 5.6 后备处理
  • 5.7 实现舱壁模式
  • 5.8 基础进阶——微调Hystrix
  • 5.9 线程上下文和Hystrix

     

第5章讨论在一个或多个微服务实例关闭或处于降级状态时保护微服务的消费者。这一章将演示如何使用Spring Cloud和Netlix Hystrix (和Netflix Ribbon )来实现客户端调用的负载均衡、断路器模式、后备模式和舱壁模式。

第6章:使用Spring Cloud和Zuul进行服务路由

  • 6.1 结合微服务使用服务网关
  • 6.2 使用Spring Cloud和Netlix Zuul实现服务网关
  • 6.3 在Zuul中映射微服务路由
  • 6.4 构建过滤器以使用关联ID并进行跟踪
  • 6.5 使用Zuul进行动态路由

     

第6章会介绍微服务路由模式——服务网关。使用Spring Cloud和Netlix的Zuul服务器,开发人员将为所有微服务建立一个单一入口点。我们将讨论如何使用Zuul的过滤器API来构建可以针对流经服务网关的所有服务强制执行的策略。

第7章:保护微服务

  • 7.1 了解安全在微服务环境中的重要性
  • 7.2 认识OAuth2标准
  • 7.3 建立和配置基于Spring的OAuth2服务
  • 7.4 使用OAuth2执行用户验证和授权
  • 7.5 使用OAuth2保护Spring微服务
  • 7.6 在服务之间传播OAuth2访问令牌

     

第7章介绍如何使用Spring Cloud Security 和OAuth2实现服务验证和授权。我们将介绍如何设置OAuth2服务来保护服务,以及如何在OAuth2实现中使用JSONWeb令牌(JSON Web Tokens,JWT )。

第8章:使用Spring Cloud Stream的事件驱动架构

  • 8.1 了解事件驱动的架构处理以及它与微服务的相关性
  • 8.2 使用SpringCloudStream简化微服务中的事件处理
  • 8.3 配置Spring Cloud Stream
  • 8.4 使用SpringCloudStream和Kafka发布消息
  • 8.5 使用SpringCloudStream和Kafka消费消息
  • 8.6 使用Spring Cloud Stream、Kafka 和Redis实现分布式缓存

     

第8章讨论如何使用Spring Cloud Stream和Apache Kafka将异步消息传递到微服务中。

第9章:使用Spring Cloud Sleuth和Zipkin进行分布式跟踪

9.1 使用Spring Cloud Sleuth将跟踪信息注入服务调用

9.2 使用日志聚合来查看分布式事务的日志

9.4 通过日志聚合工具进行查询

9.5 在跨多个微服务调用时,使用OpenZipkin直观地理解用户的事务

9.6 使用Spring Cloud Sleuth和Zipkin定制跟踪信息

第9章介绍如何使用Spring Cloud Sleuth和Open Zipkin来实现日志关联、日志聚合和跟踪等常见日志记录模式。

第10章:部署微服务

  • 10.1 理解为什么DevOps运动对微服务至关重要
  • 10.2 配置EagleEye服务使用的核心亚马逊基础设施
  • 10.3 手动将EagleEye服务部署到亚马逊的EC2容器服务中
  • 10.4 为服务设计构建和部署管道
  • 10.5 从持续集成转向持续部署
  • 10.6 将基础设施视为代码
  • 10.7 构建不可变的服务器
  • 10.8 在部署中测试
  • 10.9 将应用程序部署到云

     

第10章是本书的基石项目。读者将使用在本书中构建的服务,并将其部署到亚马逊弹性容器服务( Amazon Elastic Container Service, ECS )。我们还将讨论如何使用TravisCI等工具自动化构建和部署微服务。


后记

本篇是为工作中的Java/Spring 开发人员纂写的,他们需要实际的建议以及如何构建和实施基于微服务的应用程序的示例。写这本书的时候,我希望它基于与Spring Boot和Spring Cloud示例结合的核心微服务模式,这些示例演示了这些模式。因此,读者会发现几乎每一章都会讨论特定的微服务设计模式,以及使用Spring Boot和Spring Cloud实现的模式示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值