首页 > 数据库 >云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作

云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作

时间:2024-03-28 15:46:45浏览次数:28  
标签:函数 MongoDB DML Kafka 阿里 FC VPC

方案概述

在大数据 ETL 场景,将 Kafka 中的消息流转到其他下游服务是很常见的场景,除了常规的消息流转外,很多场景还需要基于消息体内容做判断,然后决定下游服务做何种操作。

该方案实现了通过 Kafka 中消息 Key 的内容来判断应该对 MongoDB 做增、删、改的哪种 DML 操作。

当 Kafka 收到消息后,会自动触发函数计算中的函数,接收到消息,对消息内容做判断,然后再操作 MongoDB。用户可以对提供的默认函数代码做修改,来满足更复杂的逻辑。

整体方案通过 CADT 可以一键拉起依赖的产品,并完成了大多数的配置,用户只需要到函数计算和 MongoDB 控制台做少量配置即可。

方案优势

  • 可以实现根据 Kafka 消息的具体内容判断,该对 MongoDB 做哪种 DML 操作,灵活性和可扩展性极高。
  • 函数计算具有完善的日志系统、容错机制。可以清晰的看到对每条消息的处理日志,如果逻辑执行失败,也有重试机制和函数失败补偿机制,保证业务数据的完整性和一致性。

详情可参见文档:

https://help.aliyun.com/zh/fc/user-guide/retry-policy

https://help.aliyun.com/zh/fc/result-callback

方案限制: 目前源 Kafka 只支持阿里云 Kafka。

部署架构

架构说明

该架构图直观的表现出了该方案中使用到的网络(VPC,交换机,安全组)、Kafka、函数计算 FC、MongoDB 之间的关系。

网络架构:

  • 整个方案会在某个 Region 下,该示例使用的是北京 Region
  • 在 Region 下会创建一个 VPC
    • 在该 VPC 下会创建一个某可用区的交换机,该示例使用的是 G 可用区
    • 在该 VPC 下会创建一个安全组
  • Kafka,FC,MongoDB 都在该 VPC 的 G 可用区的交换机下
  • FC 在与 VPC 其他资源互通时会使用到 VPC 下的安全组

产品介绍

专有网络 VPC(Virtual Private Cloud): 是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

函数计算 FC(Function Compute): 函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。

云消息队列 Kafka 版: 云消息队列 Kafka 版是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。云消息队列 Kafka 版广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。

云数据库 MongoDB 版(ApsaraDB for MongoDB): 完全兼容 MongoDB 协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份恢复、性能优化等功能。

云速搭 CADT(Cloud Architect Design Tools): 是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。

前置条件

在进行本文操作之前,您需要完成以下准备工作:

1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面 https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成实名认证。

2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面 https://usercenter2.aliyun.com/home) 查看账户余额。

操作步骤

本实践可通过 CADT 官方模板快速拉起演示环境。

  1. 基础环境搭建

  2. 配置 MongoDB

    2.1. 设置白名单

    2.2. 记录 MongoDB 连接地址

    2.3. 创建 MongoDB 库和集合

    2.4. 查询 MongoDB 中的数据

  3. 配置函数计算 FC

    3.1. 登录函数计算 FC 控制台

    3.2. 配置函数环境变量

    3.3. 配置函数实例生命周期回调

    3.4. 配置函数的层

    3.5. 配置函数代码

  4. 场景验证

    4.1. 阿里云 Kafka 模拟发送消息

    4.2. 查询 MongoDB 数据

    4.3. 验证更多场景

  5. 一键释放资源

最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。

往期文章:

云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

标签:函数,MongoDB,DML,Kafka,阿里,FC,VPC
From: https://www.cnblogs.com/alisystemsoftware/p/18101855

相关文章

  • 【Canal】Canal+Kafka实现数据同步
    canal介绍参考:【Canal】Canal快速入门Kafka准备参考:【Kafka】Kafka安装(一) + 【Kafka】Kafka-UI安装启动canal-server参考:https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart下载canal,访问 release页面 ,选择需要的包下载,如......
  • MySql单表操作学习DDL_DML_DQL语句
     数据库名称可以为【schoolDB】,字符集【utf8】,排序规则【utf8_general_ci】。1、创建数据表——DDLCREATETABLE`student`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'学号',`createDate`datetimeDEFAULTNULLCOMMENT'创建时间',`userName`varchar......
  • kafka命令工具创建查看topic信息
    转载:https://www.jianshu.com/p/6cf6c7f208c9 1、创建topic./bin/kafka-topics.sh--bootstrap-serverlocalhost:9092--create--topicfirst--partitions1--replication-factor1./bin/kafka-topics.sh--create--bootstrap-serverlocalhost:9092--replication-fa......
  • Centos7.9 部署mongodb高可用集群 3节点
    一、部署准备1.三台节点准备192.168.145.172192.168.145.173192.168.145.1742.官网地址:社区版传送门3.选择对应的版本并下载4.创建用于存放数据、日志文件和配置文件的文件夹mkdir-p/data/mongodbmkdir/var/log/mongodbmkdir/etc/mongodb5.解压安装包,配置环境......
  • 推荐一个kafka可视化客户端GUI工具(Kafka King)
    KafkaKing,比较新,只需要填写kafka连接地址就行,不需要什么zookeeper。支持的功能也多:查看集群节点列表(完成)创建主题(支持批量)、删除主题、支持根据消费者组统计每个topic的消息积压量(完成)支持查看topic的分区的详细信息,并为主题添加额外的分区(完成)支持查看每个分区的消息offse......
  • win10 docker zookeeper和kafka搭建
    好久没用参与大数据之类的开发了,近日接触到一个项目中使用到kafka,因此要在本地搭建一个简易的kafka服务。时间比较紧急,之前有使用docker的经验,因此本次就使用docker来完成搭建。在搭建过程中出现的一些问题,及时记录,以便后期再遇见。环境计算机环境:win1022H2dockerVersio......
  • RestCloud数据集成平台-监听SqlServer数据库表,并同步数据到MongoDB数据库表详细教程(实
    上一篇:RestCloud数据集成平台-Windows全量包安装部署详细教程1.数据源管理数据源主要用来建立与用户的数据库的链接。数据源管理主要用来对用户添加的所有数据链接进行管理,主要包括新建数据源、测试链接、修改链接、复制链接、查询链接和删除链接等功能。1.1.创建链接......
  • 使用K8S集群运行MongoDB7.0
    参考:https://hub.docker.com/_/mongo创建PVC创建PVC用于数据持久化#catmongodb-pvc.yamlapiVersion:v1kind:PersistentVolumeClaimmetadata:name:mongodb-pvcspec:accessModes:-ReadWriteOnceresources:requests:storage:22Gistorag......
  • MongoDB面试专题
    文章目录NoSQL数据库NoSQL数据库有哪些类型?MySQL与MongoDB之间最基本的差别是什么?比较MongoDB、CouchDB及CouchBase?MongoDB成为最好NoSQL数据库的原因是什么?32位系统上有什么细微差别?journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇......
  • [20240325]FORCE_MATCHING_SIGNATURE与DML.txt
    [20240325]FORCE_MATCHING_SIGNATURE与DML.txt--//生产系统遇到1个FORCE_MATCHING_SIGNATURE重合的奇怪现象,一般情况都是相似的sql语句(没有使用绑定变量的sql语句),--//FORCE_MATCHING_SIGNATURE相同。--//实际上insert语句真实FORCE_MATCHING_SIGNATURE=0,但是在v$active_session......