核心开发模式

核心开发模式解决了构建微服务的基础问题,下图展示了构建微服务的基础:

服务粒度

如何将业务域分解为微服务,才能使每个微服务都具有适当程度的职责?

  • 服务职责划分过于粗粒度,在不同的业务问题领域重叠,会使服务随着时间的推移变得难以维护。

  • 服务职责划分过于细粒度,则会使应用程序的整体复杂性增加,并将服务变为无逻辑的“哑”数据抽象层。

通信协议

开发人员如何与服务进行通信?第一步是定义需要同步协议还是异步协议。

  • 对于同步协议,最常见的协议是基于 HTTP 的 REST,使用 XML、JSON 或诸如 Thrift 之类的二进制协议来与微服务来回传输数据。

  • 对于异步协议,最流行的协议是高级消息队列协议(Advanced Message Queuing Protocol,AMQP),使用一对一(队列)或一对多(主题)的消息代理,如 RabbitMQ、Apache Kafka 和 Amazon 简单队列服务(Simple Queue Service,SQS)。

接口设计

如何设计实际的服务接口,便于开发人员进行服务调用?如何构建服务?最佳实践是什么?

服务的配置管理

如何管理微服务的配置,使其在不同的云环境之间移动?

服务之间的事件处理

如何使用事件解耦微服务,才能最小化服务之间的硬编码依赖关系,并提高应用程序的弹性?答案是使用Spring Cloud Stream 的事件驱动架构

Last updated