只需三步,即可使用 Kafka 托管服务快速部署微服务架构应用

微服务架构的应用程序的特点是将其组件组织得能够独立地进行开发、测试、部署和扩展。DigitalOcean App Platform(应用平台)的目标是通过允许用户在同一应用上添加多个组件,简化这一架构模型,使其更加平滑和易于管理。

一个简单的微服务架构应用程序可能有两个组件:

  1. 网络服务 API :接收请求并向分布式事件处理平台(如 Kafka)发布信息,并立即向用户返回响应,无需等待处理完成。用户随后可以轮询响应状态。这种模式在响应用户请求方面提供了更好的用户体验。该组件可以作为服务组件类型部署在 App Platform 中
  2. 后端处理服务 :用于监听来自分布式事件处理平台的事件。该组件可部署为工作组件类型,负责接收消息并执行满足用户请求所需的业务逻辑。

这种类型的微服务架构允许开发者分别根据应用需求来扩展网络服务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 提供的代码

  1. 生产者

你可以在软件仓库的 /producer 目录中找到生产者。生产者是一个 HTTP API,它将请求体发布到 Kafka,并且还包括一个网络接口,可通过 HTTP 请求来生成信息。

  1. 消费者

你可以在 /consumer 目录中找到消费者。消费者是一个监听来自 Kafka 的事件并打印信息的工作程序。

  1. 托管 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 产品页面

相关推荐
深圳蔓延科技16 小时前
Kafka的高性能之路
后端·kafka
稻草人222218 小时前
java Excel 导出 ,如何实现八倍效率优化,以及代码分层,方法封装
后端·架构
数据智能老司机19 小时前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机20 小时前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构
bobz9651 天前
k8s svc 实现的技术演化:iptables --> ipvs --> cilium
架构
云舟吖1 天前
基于 electron-vite 实现一个 RPA 网页自动化工具
前端·架构
brzhang1 天前
当AI接管80%的执行,你“不可替代”的价值,藏在这20%里
前端·后端·架构
Lei活在当下1 天前
【业务场景架构实战】4. 支付状态分层流转的设计和实现
架构·android jetpack·响应式设计
架构师沉默2 天前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
阿里云云原生2 天前
嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%
kafka·serverless