背景介绍
腾讯云 Serverless 云函数是下一代通用计算平台,提供安全稳定、高效易用的低成本无服务器运行环境。随着 Kafka 社区的繁荣,越来越多的用户开始使用 Kafka 来做日志收集、大数据分析、流式数据处理等。而公有云上的产品 Ckafka 也借助了开源社区的力量,做了很多优化:
- 基于 ApacheKafka 的分布式、高可扩展、高吞吐
- 100% 兼容 Apache KafkaAPI(0.9 及 0.10)
- 无需部署,直接使用 Kafka 所有功能
- ckafka 封装所有集群细节,无需用户运维
- 支持动态升降实例配置,按照需求付费(开发中)
- 对消息引擎优化,性能比社区最高提升 50%
同时,在公有云上,云函数也和 CKafka 做了深度联动,并推出了很多非常实用的功能。
运行原理
如下图,云函数可以实时消费 Ckafka 中的消息,比如做数据转存、日志清洗、实时消费等。并且,像数据转存的功能已经集成到了 Ckafka 的控制台上,用户可以一键开启使用,大大降低了用户使用的复杂度。
![7b87ff00dc3eae5e24fe1f8daf1a6d5f.png](https://i-blog.csdnimg.cn/blog_migrate/6186f094bfaf0f97bfe4db17b03cf147.png)
方案优势
对比使用云主机自建 Ckafka Consumer 的方式,云函数帮用户屏蔽掉了很多不必要的开销:
- 云函数控制台上可以一键开启Ckafka触发器,帮助用户自动创建 Consumer,并由云函数平台来维护组建的高可用;
- Ckafka 触发器自身支持很多实用的配置:支持配置 offset 位置、支持配置1~1万消息聚合条数、支持配置 1~1万次重试次数等;
- 基于云函数开发的业务逻辑,天然支持弹性伸缩,无需额外搭建和维护服务器集群等。
常用场景
如下图所示,借助云函数和 Ckafka 触发器,可以非常方便实现 CKafka 消息转存到 COS、ES、DB等,那本次也会借助云函数来替代 Logstash,实现 Ckafka 消息罗盘 ES。
和使用 CVM 自建 Logstash 对比,云函数有以下优势:
- 云函数自带 Consumer 组件,可自行聚合;
- 云函数的模板函数已经实现了消息聚合和部分清洗能力,还可自行扩展;
- 云函数集群自带高可用和监控日志能力,业务上线速度更快;
- 云函数采用按实际使用收费,比自建集群费用更优,可以节省 50% 的费用。
![daf87e5d5c079f5092b9ff14b7a71746.png](https://i-blog.csdnimg.cn/blog_migrate/dbc51095deca9016fc07be19d5d3eef1.png)
部署流程
前置条件
以广州地域为例:
- 开启 Elasticsearch 服务
- 开启 Ckafka 服务
1. 创建云函数
登录云函数控制台,选择地域后,新建函数,选择运行环境Python3.6,搜索“Ckafka”,选中模板函数后,下一步。
![8c33d0fe09ee58c6996244a2f96782c0.png](https://i-blog.csdnimg.cn/blog_migrate/8a6297a62f575b7955a0ae27e8d52491.png)
在下一步中,点开高级设置:配置环境变量,如下:
必填参数:ES_Address,ES_User,ES_Password,ES_Index_KeyWord
可选填入:
ES_Log_IgnoreWord(需要删除的关键词,缺省则全量写入,如填name,password)
ES_Index_TimeFormat(按照天或者小时设置Index,缺省则按照天建立索引,如填hour)
![c468ae39461321cd17af8a5bb5f1f9de.png](https://i-blog.csdnimg.cn/blog_migrate/c998d0777ba44ee7b21cac0b3e7b7e4d.png)
在高级设置中,配置私有网络,需要选择和 ES 相同 VPC,完成函数创建。
![f4fa7f5be9d9ef83ee6d43ec20a8c406.png](https://i-blog.csdnimg.cn/blog_migrate/b0a67f4a8e388a4dd77bda9a56ad3755.png)
2. 创建 Ckafka 触发器
在函数的【触发管理】页面,创建触发器,配置对应 Topic 的触发方式,提交后即可生效。
![94535990b38a3ab0da2aa9a178003a6e.png](https://i-blog.csdnimg.cn/blog_migrate/9ea8011218c94cee2a250aa094556092.png)
3. 查看 ES 和函数运行日志
- 查看函数运行日志
![4d3d211ad5195860e8da762045fe35f7.png](https://i-blog.csdnimg.cn/blog_migrate/07e90acc5e22ded1de2be04b934b9e3d.png)
- 查看 Kibana
![5a9573ff65e4b3b43727224eab9fbbba.png](https://i-blog.csdnimg.cn/blog_migrate/59f40a4cfc7f23e1b21e8f04062901d7.png)
- 扩展能力介绍
如果想要实现高级日志清洗逻辑,可直接在函数代码中修改逻辑。
![5e7a9027eb6197437c912cb686e4b5f7.png](https://i-blog.csdnimg.cn/blog_migrate/eb049afc3859a8647aee613dec33be37.png)
针对函数的运行状态,可以自行配置监控告警,实时感知业务运行情况。
![53595bb0b76a0d38c0aa65aa9069ac7f.png](https://i-blog.csdnimg.cn/blog_migrate/fe17558d8232948324e109fc363d3396.png)
One More Thing
立即体验腾讯云 Serverless Demo,获取免费试用额度,请在 PC 端访问:
serverless.cloud.tencent.com/start?c=wx
![89534eb6b2fc0fd2deb0bba7b104fe03.png](https://i-blog.csdnimg.cn/blog_migrate/21dc3fb5176572ae9ff20a98d44a7db9.png)