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

news2024/11/24 19:12:09

微服务架构的应用程序的特点是将其组件组织得能够独立地进行开发、测试、部署和扩展。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 产品页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1943607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Zotero插件】Zotero Tag为文献设置阅读状态 win11下相关设置

【Zotero插件设置】Zotero Tag为文献设置阅读状态 win11下相关设置 1.安装Zotero Tag1.1安装1.2配置1.3 win11的相关设置1.3.1 字体安装 参考教程 2.支持排序的标注参考教程 1.安装Zotero Tag 1.1安装 Zotero Tag插件下载链接安装方法:Zotero–》工具–》附加组件…

day1 测试基础知识

1. 阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些? 2.常见测试模型有哪些? 参考链接:系统测试中的W模型---测试和开发相结合_开发和测试同时进行-CSDN博客 V模型 W模型(测试与开发并行) …

【ROS2】高级:安全-部署指南

目标:了解将安全工件部署到生产系统时的最佳实践。 教程级别:高级 时间:20 分钟 内容 背景 先决条件 一般准则构建部署场景 生成 Docker 镜像理解 compose 文件 运行示例 检查容器 背景 典型的部署场景通常涉及将容器化的应用程序或软件包发送…

高校体育场小程序的设计

管理员账户功能包括:系统首页,个人中心,状态管理,学生管理,用户管理,体育场管理,用户订单管理,学生订单管理,评价信息管理,交流论坛,系统管理 微…

4 种在 Windows 11/10/8/7 上恢复永久删除文件的可靠方法

您是否在 Windows 11/10/8/7 中从桌面永久删除了重要文件?当您不小心删除文件然后意识到以后需要它们时,这可能是一个真正的痛苦。但别担心,您可以使用多种方法从Windows PC恢复永久删除的文件。在这篇博文中,我们将为您提供 4 种…

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…

Flutter Hive NoSql 数据库使用指南

Flutter Hive NoSql 数据库使用指南 视频 https://www.bilibili.com/video/BV1yJ4m1u7P2/ https://youtu.be/UJobRKdp68k 前言 原文 https://ducafecat.com/blog/flutter-hive-nosql-guide 本文将会写一个 Hive CURD 的例子,详细介绍 Hive 这个轻量级的 Flutter …

解决element-plus的Date Picker日期选择器组件禁用时间的坑

目前需求是有一个表单,其中有多个日期组件需要选择时间范围,并且选择的范围不可以有交集重复,所以这里需要用到Date Picker中的disabled-date属性,来判断该日期是否被禁用。 直接上代码,这个是我写的demo代码&#xf…

基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF.仿真输出误差收敛曲线和误差协方差收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022…

社交圈子聊天交友系统搭建社交app开发:陌生交友发布动态圈子单聊打招呼群聊app介绍

系统概述 社交圈子部天交友系统是一个集成即时通讯、社区互动、用户管理等功能的在线社交平台。它支持用户创建个人资料,加入兴趣围子,通过文字、图片、语音、视频等多种方式进行交流,满足用户在不同场景下的社交需求 核心功能 -,…

leetcode日记(46)最后一个单词的长度

很简单,从后往前遍历即可 class Solution { public:int lengthOfLastWord(string s) {int len0;for(int is.size()-1;i>0;i--){if(s[i]! ) len;else if(len!0) break;}return len;} };

Vision Permutator(TPAMI 2022)论文与代码解析

paper:Vision Permutator: A Permutable MLP-Like Architecture for Visual Recognition official implementation:https://github.com/houqb/VisionPermutator 出发点 现有的MLP模型在编码空间信息时通常会将空间维度展开并沿着展平的维度进行线性投…

《Java初阶数据结构》----3.<线性表---LinkedList与链表>

目录 前言 一、链表的简介 1.1链表的概念 1.2链表的八种结构 重点掌握两种 1.3单链表的常见方法 三、单链表的模拟实现 四、LinkedList的模拟实现(双链表) 4.1 什么是LinkedList 4.2LinkedList的使用 五、ArrayList和LinkedList的区别 前言 …

无法连接到internet怎么办?已连接但无internet访问,其实并不难

有时我们会遇到无法连接到Internet的问题,由多种原因引起,包括硬件故障、软件设置问题、网络供应商故障等。本文将介绍无法连接到Internet时可以采取的步骤。 简述 当你无法连接到Internet时,可以按照以下步骤进行检查和解决: 1…

数据结构C++——优先队列

文章目录 一、定义二、ADT三、优先队列的描述3.1 线性表3.2 堆3.2.1 最大堆的ADT3.2.2 最大堆的插入3.2.3 最大堆的删除3.2.4 最大堆的初始化3.3 左高树 LT3.3.1 高度优先左高树HBLT3.3.2 重量优先左高树WBLT3.3.3 最大HBLT的插入3.3.4 最大HBLT的删除3.3.5 合并两棵最大HBLT3.…

自用:磁传感器数据解算

协议格式: 详细计算磁场如下: 3字节数据的格式为有符号整型数,数据为补码格式,最高位为符号位。需要先将补码格式的数据转化为10进制的实际值,方法如下: 当数据小于时为正数,实际值为本身&…

Mac中maven配置安装路径

Mac中maven配置安装路径 没有下载maven的可以先下载:(这里建议maven版本不要下高了) 如果你的bash_profile中没有配置JAVA_HOME路径,可以按照下面的命令配置一下 获取JAVA的安装路径: /usr/libexec/java_home -V …

Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档

什么是 Swagger ? Swagger 是一组围绕 OpenAPI 规范构建的开源工具,可以帮助您设计、构建、记录和使用 REST API。主要的 Swagger 工具 包括: Swagger Editor:基于浏览器的编辑器,您可以在其中编写 OpenAPI 定义Swagger UI&…

NSSCTF[堆][tcache]

1. [CISCN 2021 初赛]lonelywolf 题目地址:[CISCN 2021 初赛]lonelywolf | NSSCTF 思路: 修开tcache结构,伪造一个0x91的chunk,伪造0x91chunk的数量(填满tcache),再将其释放free进入unsortedb…

Linux中,MySQL数据库基础

21 世纪,人类迈入了“信息爆炸时代”,大量的数据、信息在不断产生,伴随而来的就是如何安全、有效地存储、检索和管理它们。对数据的有效存储、高效访问、方便共享和安全控制已经成为信息时代亟待解决的问题。 数据库简介 使用数据库的必要性…