购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 核心开发模式

核心开发模式解决了构建微服务的基础问题,图1-11突出了我们将要讨论的基本服务设计的主题。

以下模式(如图1-11所示)展示了构建微服务的基础。

服务粒度 ——如何将业务域分解为微服务,才能使每个微服务都具有适当程度的职责?服务职责划分过于粗粒度,在不同的业务问题领域重叠,会使服务随着时间的推移变得难以维护。服务职责划分过于细粒度,则会使应用程序的整体复杂性增加,并将服务变为无逻辑的(除了访问数据存储所需的逻辑)“哑”数据抽象层。第3章将会介绍服务粒度。

通信协议 ——开发人员如何与服务进行通信?第一步是定义需要同步协议还是异步协议。对于同步协议,最常见的协议是基于HTTP的REST,使用XML(Extensible Markup Language,可扩展标记语言)、JSON或诸如Thrift之类的二进制协议来与微服务来回传输数据。对于异步协议,最流行的协议是高级消息队列协议(Advanced Message Queuing Protocol,AMQP),使用一对一(队列)或一对多(主题)的消息代理,如RabbitMQ、Apache Kafka和Amazon简单队列服务(Simple Queue Service,SQS)。在后面的章节中,我们将学习通信协议。

接口设计 ——如何设计实际的服务接口,便于开发人员进行服务调用?如何构建服务?最佳实践是什么?下一章将介绍最佳实践和接口设计。

服务的配置管理 ——如何管理微服务的配置,使其在不同的云环境之间移动?第5章将介绍如何通过外部化配置和配置文件来管理微服务的配置。

服务之间的事件处理 ——如何使用事件解耦微服务,才能最小化服务之间的硬编码依赖关系,并提高应用程序的弹性?答案是使用Spring Cloud Stream的事件驱动架构,这将在第10章中介绍。

图1-11 在设计微服务时需要考虑服务是如何通信和被消费的 PO29goBku3O4kBfAIeZvdk35LPRNyFO6U5IMQaRnCi/g5Q1aTCKBbKy/94ehSFQZ

点击中间区域
呼出菜单
上一章
目录
下一章
×