微服务架构的应用程序的特点是将其组件组织得能够独立地进行开发、测试、部署和扩展。DigitalOcean App Platform(应用平台)的目标是通过允许用户在同一应用上添加多个组件,简化这一架构模型,使其更加平滑和易于管理。
一个简单的微服务架构应用程序可能有两个组件:
- 网络服务 API:接收请求并向分布式事件处理平台(如 Kafka)发布信息,并立即向用户返回响应,无需等待处理完成。用户随后可以轮询响应状态。这种模式在响应用户请求方面提供了更好的用户体验。该组件可以作为服务组件类型部署在 App Platform 中。
- 后端处理服务:用于监听来自分布式事件处理平台的事件。该组件可部署为工作组件类型,负责接收消息并执行满足用户请求所需的业务逻辑。
这种类型的微服务架构允许开发者分别根据应用需求来扩展网络服务API(生产者)和后端处理服务(消费者)。例如,后端服务处理可能需要大量CPU资源,因此可以从基于需求自动扩展的专用CPU(Dedicated CPU)实例中获益。另一方面,网络服务API可能在具有固定2个规模的共享CPU(Shared CPU)实例上表现良好,以此来实现冗余。
托管的 Kafka 集成
App Platform 支持具有多个组件的应用程序,实现了微服务架构所需的生产者和消费者模式。通过与DigitalOcean Kafka 托管服务的无缝集成,我们进一步简化了开发人员的开发过程。有关集成的更多详情,请参见文档。
App Platform 的 Kafka 集成允许你将 Kafka 实例附加到应用程序,并简化连接 Kafka 所需的环境变量配置。这样,你就可以专注于构建应用程序,而不必担心基础设施的设置。
我们的目标是尽可能简化操作,具体步骤如下。请尝试一下,并告诉我们你的想法!
第 1 步 - 配置托管 Kafka 实例
有关如何部署托管 Kafka 的说明,请点击此处。要发布和消费消息,还需要创建一个topic。
第 2 步 - 部署应用程序
请按照以下步骤部署您的应用程序,并测试其功能。同时也可以参考我们在 github 提供的代码。
- 生产者
你可以在软件仓库的 /producer
目录中找到生产者。生产者是一个 HTTP API,它将请求体发布到 Kafka,并且还包括一个网络接口,可通过 HTTP 请求来生成信息。
- 消费者
你可以在 /consumer
目录中找到消费者。消费者是一个监听来自 Kafka 的事件并打印信息的工作程序。
- 托管 Kafka
这是第1步中创建的托管 Kafka 实例。
下面是你的应用程序的外观。请注意,生产者是一个网络服务,消费者是一个工作程序。
此外,为了确保你的应用程序能正确连接到 Kafka,需要使用以下环境变量。
Unset
KAFKA_BROKER=
${kafkaocean.HOSTNAME}:$
{kafkaocean.PORT}
KAFKA_USERNAME=${kafkaocean.USERNAME}
KAFKA_PASSWORD=${kafkaocean.PASSWORD}
KAFKA_CA_CERT=${kafkaocean.CA_CERT}
KAFKA_TOPIC=datastream
第 3 步 - 测试您的应用程序
示例应用程序中包含一个网络用户界面,用于生成信息。你在用户界面中输入的文本可以在消费者组件的运行日志中看到。
下一步是什么?
为了持续提升你所获得的价值,我们发布了与 App Platform 的托管 Kafka 集成测试版。但我们不会就此止步!我们将研究如何确保 Kafka 与应用程序连接的安全性,以及如何改善环境变量设置的用户体验。
目前,我们建议使用专用 IP 来确保你的托管 Kafka 实例只接受来自应用程序的连接。
你有进一步改进集成的想法吗?请联系DigitalOcean的合作伙伴——DigitalOcean中国区独家战略合作伙伴卓普云。有关 App Platform 特性和功能的详细信息,请访问 App Platform 产品页面。