# Summary * 0、前言 * 1、微服务简介 - 1.1、构建单体应用 - 1.2、走向单体地狱 - 1.3、微服务-解决复杂问题 - 1.4、微服务的优点 - 1.5、微服务的缺点 - 1.6、总结 - 微服务实战:NGINX Plus 作为反向代理服务器 * 2、使用 API 网关 - 2.1、简介 - 2.2、客户端与微服务直接通信 - 2.3、使用 API 网关 - 2.4、API 网关的优点与缺点 - 2.5、实施 API 网关 - 2.5.1、性能与扩展] - 2.5.2、使用响应式编程模型 - 2.5.3、服务调用] - 2.5.4、服务发现 - 2.5.5、处理局部故障 - 2.6、总结 - 微服务实战:NGINX Plus 作为 API 网关 * 3、进程间通信 - 3.1、简介 - 3.2、交互方式 - 3.3、定义 API - 3.4、演化 API - 3.5、处理局部故障 - 3.6、IPC 技术 - 3.7、异步、基于消息的通信 - 3.8、同步的请求/响应 IPC - 3.8.1、REST - 3.8.2、Thrift - 3.9、消息格式 - 3.10、总结 - 微服务实战:NGINX 与应用程序架构 * [4、服务发现](4-service-discovery.md) - [4.1、为何使用服务发现](4-service-discovery.md#why-use-service-discovery) - [4.2、客户端发现模式](4-service-discovery.md#the-client-side-discovery-pattern) - [4.3、服务端发现模式](4-service-discovery.md#the-server-side-discovery-pattern) - [4.4、服务注册中心](4-service-discovery.md#the-service-registry) - [4.5、服务注册方式](4-service-discovery.md#service-registration-options) - [4.6、自注册模式](4-service-discovery.md#the-self-registration-pattern) - [4.7、第三方注册模式](4-service-discovery.md#the-third-party-registration-pattern) - [4.8、总结](4-service-discovery.md#summary) - [微服务实战:灵活的 NGINX](4-service-discovery.md#microservices-in-action) * [5、事件驱动数据管理](5-event-driven-data-management-for-microservices.md) - [5.1、微服务与分布式数据管理问题](5-event-driven-data-management-for-microservices.md#microservices-and-the-problem-of-distributed-data-management) - [5.2、事件驱动架构](5-event-driven-data-management-for-microservices.md#event-driven-architecture) - [5.3、实现原子性](5-event-driven-data-management-for-microservices.md#achieving-atomicity) - [5.4、使用本地事务发布事件](5-event-driven-data-management-for-microservices.md#publishing-events-using-local-transactions) - [5.5、挖掘数据库事务日志](5-event-driven-data-management-for-microservices.md#mining-a-database-transaction-log) - [5.6、使用事件溯源](5-event-driven-data-management-for-microservices.md#using-event-sourcing) - [5.7、总结](5-event-driven-data-management-for-microservices.md#summary) - [微服务实战:NGINX 与存储优化](5-event-driven-data-management-for-microservices.md#microservices-in-action) * [6、选择部署策略](6-choosing-deployment-strategy.md) - [6.1、动机](6-choosing-deployment-strategy.md#motivations) - [6.2、单主机多服务实例模式](6-choosing-deployment-strategy.md#multiple-service-instances-per-host-pattern) - [6.3、每个主机一个服务实例模式](6-choosing-deployment-strategy.md#service-instance-per-host-pattern) - [6.3.1、每个虚拟机一个服务实例模式](6-choosing-deployment-strategy.md#service-instance-per-virtual-machine-pattern) - [6.3.2、每个容器一个服务实例模式](6-choosing-deployment-strategy.md#service-instance-per-container-pattern) - [6.4、Serverless 部署](6-choosing-deployment-strategy.md#serverless-deployment) - [6.5、总结](6-choosing-deployment-strategy.md#summary) - [微服务实战:使用 NGINX 在不同主机上部署微服务](6-choosing-deployment-strategy.md#microservices-in-action) * [7、重构单体应用为微服务](7-refactoring-a-monolith-into-microservices.md) - [7.1、微服务重构概述](7-refactoring-a-monolith-into-microservices.md#overview-of-refactoring-to-microservices) - [7.2、策略一:停止挖掘](7-refactoring-a-monolith-into-microservices.md#strategy-1-Stop-digging) - [7.3、策略二:前后端分离](7-refactoring-a-monolith-into-microservices.md#strategy-2-split-frontend-and-backend) - [7.4、策略三:提取服务](7-refactoring-a-monolith-into-microservices.md#strategy-3-extract-services) - [7.4.1、优先将哪些模块转换为微服务](7-refactoring-a-monolith-into-microservices.md#prioritizing-which-modules-to-convert-into-services) - [7.4.2、如何提取模块](7-refactoring-a-monolith-into-microservices.md#how-to-extract-a-module) - [7.5、总结](7-refactoring-a-monolith-into-microservices.md#summary) - [微服务实战:使用 NGINX 征服单体](7-refactoring-a-monolith-into-microservices.md#microservices-in-action)