V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
scf10cent
V2EX  ›  推广

腾讯云 Serverless 云函数实现 CKafka 数据转存到 ES

  •  
  •   scf10cent · 2020-09-07 11:00:06 +08:00 · 1231 次点击
    这是一个创建于 1565 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文首发于 Serverless 中文网


    背景介绍

    腾讯云 Serverless 云函数是下一代通用计算平台,提供安全稳定、高效易用的低成本无服务器运行环境。随着 Kafka 社区的繁荣,越来越多的用户开始使用 Kafka 来做日志收集、大数据分析、流式数据处理等。而公有云上的产品 Ckafka 也借助了开源社区的力量,做了很多优化:

    • 基于 ApacheKafka 的分布式、高可扩展、高吞吐
    • 100% 兼容 Apache KafkaAPI ( 0.9 及 0.10 )
    • 无需部署,直接使用 Kafka 所有功能
    • Ckafka 封装所有集群细节,无需用户运维
    • 支持动态升降实例配置,按照需求付费(开发中)
    • 对消息引擎优化,性能比社区最高提升 50%

    同时,在公有云上,云函数也和 CKafka 做了深度联动,并推出了很多非常实用的功能。

    运行原理

    如下图,云函数可以实时消费 Ckafka 中的消息,比如做数据转存、日志清洗、实时消费等。并且,像数据转存的功能已经集成到了 Ckafka 的控制台上,用户可以一键开启使用,大大降低了用户使用的复杂度。

    方案优势

    对比使用云主机自建 Ckafka Consumer 的方式,云函数帮用户屏蔽掉了很多不必要的开销:

    1. 云函数控制台上可以一键开启 Ckafka 触发器,帮助用户自动创建 Consumer,并由云函数平台来维护组建的高可用;
    2. Ckafka 触发器自身支持很多实用的配置:支持配置 offset 位置、支持配置 1~1 万消息聚合条数、支持配置 1~1 万次重试次数等;
    3. 基于云函数开发的业务逻辑,天然支持弹性伸缩,无需额外搭建和维护服务器集群等。

    常用场景

    如下图所示,借助云函数和 Ckafka 触发器,可以非常方便实现 CKafka 消息转存到 COS 、ES 、DB 等,那本次也会借助云函数来替代 Logstash,实现 Ckafka 消息罗盘 ES 。

    和使用 CVM 自建 Logstash 对比,云函数有以下优势:

    1. 云函数自带 Consumer 组件,可自行聚合;
    2. 云函数的模板函数已经实现了消息聚合和部分清洗能力,还可自行扩展;
    3. 云函数集群自带高可用和监控日志能力,业务上线速度更快;
    4. 云函数采用按实际使用收费,比自建集群费用更优,可以节省 50% 的费用。

    部署流程

    前置条件(以广州地域为例):

    • 开启 Elasticsearch 服务
    • 开启 Ckafka 服务

    1. 创建云函数

    登录云函数控制台,选择地域后,新建函数,选择运行环境 Python3.6,搜索「 Ckafka 」,选中模板函数后,下一步。

    在下一步中,点开高级设置:配置环境变量,如下:

    必填参数:ES_Address, ES_User, ES_Password, ES_Index_KeyWord

    可选填入:

    • ES_Log_IgnoreWord(需要删除的关键词,缺省则全量写入,如填 name, password
    • ES_Index_TimeFormat(按照天或者小时设置 Index,缺省则按照天建立索引,如填 hour

    在高级设置中,配置私有网络,需要选择和 ES 相同 VPC,完成函数创建。

    2. 创建 Ckafka 触发器

    在函数的 [触发管理] 页面,创建触发器,配置对应 Topic 的触发方式,提交后即可生效。

    3. 查看 ES 和函数运行日志

    查看函数运行日志

    查看函数运行日志

    查看 Kibana

    查看 Kibana

    扩展能力介绍

    如果想要实现高级日志清洗逻辑,可直接在函数代码中修改逻辑。

    针对函数的运行状态,可以自行配置监控告警,实时感知业务运行情况。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:44 · PVG 20:44 · LAX 04:44 · JFK 07:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.