只需三步,即可使用 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 产品页面

相关推荐
@大迁世界9 小时前
前端:优秀架构的坟墓
前端·架构
?ccc?10 小时前
Kubernetes 架构原理与集群环境部署
容器·架构·kubernetes
cui_win10 小时前
Kafka 配置参数详解:ZooKeeper 模式与 KRaft 模式对比
分布式·zookeeper·kafka
秋千码途12 小时前
小架构step系列17:getter-setter-toString
java·开发语言·架构
Ashlee_code12 小时前
美联储降息趋缓叠加能源需求下调,泰国证券交易所新一代交易系统架构方案——高合规、强韧性、本地化的跨境金融基础设施解决方案
java·算法·金融·架构·系统架构·区块链·需求分析
zkmall13 小时前
ZKmall开源商城架构助力增长:多端流量聚合与用户体验
架构·开源·ux
喝拿铁写前端13 小时前
技术是决策与代价的平衡 —— 超大系统从 Vue 2 向 Vue 3 演进的思考
前端·vue.js·架构
cui_win14 小时前
深入理解 Kafka 核心:主题、分区与副本的协同机制
网络·分布式·kafka
秋千码途15 小时前
小架构step系列14:白盒集成测试原理
java·架构·集成测试
向上的车轮15 小时前
SQLite技术架构解析,适用场景有哪些?
数据库·架构·sqlite