{"componentChunkName":"component---src-templates-blog-detail-tsx","path":"/blog/2020-08-05-serverless-kafka","result":{"data":{"currentBlog":{"id":"d15dd69e-cd2c-5cfe-a27b-e44de4bd3ef4","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/202085/1596628194866-1596598484307-%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_15965984707760.jpg","authors":["许文强"],"categories":["news"],"date":"2020-08-05T00:00:00.000Z","title":"腾讯云 Serverless 衔接 Kafka 上下游数据流转实战","description":"腾讯云 CKafka 作为大数据架构中的关键组件，起到了数据聚合，流量削峰，消息管道的作用。在 CKafka 上下游中的数据流转中有各种优秀的开源解决方案。如 Logstash，File Beats，Spark，Flink等等。本文将带来一种新的解决方案：Serverless Function，其在学习成本，维护成本，扩缩容能力等方面相对已有开源方案将有优异的表现。","authorslink":["https://github.com/loboxu"],"translators":null,"translatorslink":null,"tags":["Serverless","Kafka"],"keywords":"Serverless, Serverless Kafka, Serverless 实践","outdated":null},"wordCount":{"words":465,"sentences":50,"paragraphs":50},"fileAbsolutePath":"/opt/build/repo/content/blog/2020-08-05-serverless-kafka.md","fields":{"slug":"/blog/2020-08-05-serverless-kafka/","keywords":["go","java","php","python","serverless","spa","Function","Serverless","数据","开源","Kafka","流式","流转","批式","成本"]},"html":"<p>腾讯云 CKafka 作为大数据架构中的关键组件，起到了数据聚合，流量削峰，消息管道的作用。在 CKafka 上下游中的数据流转中有各种优秀的开源解决方案。如 Logstash，File Beats，Spark，Flink 等等。本文将带来一种新的解决方案：Serverless Function。其在学习成本，维护成本，扩缩容能力等方面相对已有开源方案将有优异的表现。</p>\n<blockquote>\n<p>作者简介：许文强，腾讯云 Ckafka 核心研发，精通 Kafka 及其周边生态。对 Serverless，消息队列等领域有较深的理解。专注于 Kafka 在公有云多租户和大规模集群场景下的性能分析和优化、及云上消息队列 serverless 化的相关探索。</p>\n</blockquote>\n<h2 id=\"tencent-cloud-kafka-介绍\"><a href=\"#tencent-cloud-kafka-%E4%BB%8B%E7%BB%8D\" aria-label=\"tencent cloud kafka 介绍 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Tencent Cloud Kafka 介绍</h2>\n<p>Tencent Cloud Kafka 是基于开源 Kafka 引擎研发的适合大规模公有云部署的 Cloud Kafka。是一款适合公有云部署、运行、运维的分布式的、高可靠、高吞吐和高可扩展的消息队列系统。它 100% 兼容开源的 Kafka API，目前主要支持开源的 0.9, 0.10, 1.1.1, 2.4.2 四个大版本 ，并提供向下兼容的能力。</p>\n<p>目前 Tencent Cloud Kafka 维护了超过 4000+ 节点的集群，每日吞吐的消息量超过 9 万亿+条，峰值带宽达到了 800GB+/s, 堆积数据达到了 20PB+。是一款集成了租户隔离、限流、鉴权、安全、数据监控告警、故障快速切换、跨可用区容灾等等一系列特性的，历经大流量检验的、可靠的公有云上 Kafka 集群。</p>\n<h2 id=\"什么是数据流转\"><a href=\"#%E4%BB%80%E4%B9%88%E6%98%AF%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC\" aria-label=\"什么是数据流转 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>什么是数据流转</h2>\n<p>CKafka 作为一款高吞吐，高可靠的消息队列引擎。需要承接大量数据的流入和流出，数据流动的这一过程我们称之它为数据流转。而在处理数据的流入和流出过程中，会有很多成熟丰富的开源的解决方案，如 Logstash，Spark，Fllink等。从简单的数据转储，到复杂的数据清洗，过滤，聚合等，都有现成的解决方案。</p>\n<p>如图所示，在 Kafka 上下游生态图中，CKafka 处于中间层，起到数据聚合，流量削峰，消息管道的作用。图左和图上是数据写入的组件概览，图右和图下是下游流式数据处理方案和持久化存储引擎。这些构成了 Kafka 周边的数据流动的生态。</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597854719-7.png\" alt=\"图 1: Kafka 上下游生态图\"></p>\n<h2 id=\"数据流转新方案-serverless-function\"><a href=\"#%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC%E6%96%B0%E6%96%B9%E6%A1%88-serverless-function\" aria-label=\"数据流转新方案 serverless function permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>数据流转新方案: Serverless Function</h2>\n<p>下图是流式计算典型数据流动示意图。其中承接数据流转方案的是各种开源解决方案。单纯从功能和性能的角度来讲，开源解决方案都有很优秀的表现。</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597855336-7.png\" alt=\"图 2: 流式计算典型数据流动示意图\"></p>\n<p>而从学习成本，维护成本，金钱成本，扩缩容能力等角度来看，这些开源方案还是有欠缺的。怎么说呢？开源方案的缺点主要在于如下三点：</p>\n<ul>\n<li>学习成本</li>\n<li>调优、维护、解决问题的成本</li>\n<li>扩缩容能力</li>\n</ul>\n<p>以 Logstash 为例，它的入门使用学习门槛不高，进阶使用有一定的成本，主要包括众多 release 版本的使用成本，参数调优和故障处理成本，后续的维护成本（进程可用性，单机的负载处理）等。如果用流式计算引擎，如 spark 和 flink，其虽然具有分布式调度能力和即时的数据处理能力，但是其学习门槛和后期的集群维护成本，将大大提高。</p>\n<p>来看 Serverless Function 是怎么处理数据流转的。如图所示，Serverless Function 运行在数据的流入和流出的处理层的位置，代替了开源的解决方案。Serverless Function 是以自定义代码的形式来实现数据清洗、过滤、聚合、转储等能力的。它具有学习成本低、无维护成本、自动扩缩容和按量计费等优秀特性。</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597856618-7.png\" alt=\"图 3: Serverless Function 实现低成本数据流转\"></p>\n<p>接下来我们来看一下 Serverless Function 是怎么实现数据流转的，并且了解一下其底层的运行机制及其优势。</p>\n<h2 id=\"serverless-function-实现数据流转\"><a href=\"#serverless-function-%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC\" aria-label=\"serverless function 实现数据流转 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Serverless Function 实现数据流转</h2>\n<p>首先来看一下怎么使用 Serverless Function 实现 Kafka To Elasticsearch 的数据流转。下面以 Function 事件触发的方式来说明 Function 是怎么实现低成本的数据清洗、过滤、格式化和转储的：</p>\n<p>在业务错误日志采集分析的场景中，会将机器上的日志信息采集并发送到服务端。服务端选择 Kafka 作为消息中间件，起到数据可靠存储，流量削峰的作用。为了保存长时间的数据(月，年)，一般会将数据清洗、格式化、过滤、聚合后，存储到后端的分布式存储系统，如 HDFS，HBASE，Elasticsearch 中。</p>\n<p>以下代码段分为三部分：数据源的消息格式，处理后的目标消息格式，功能实现的 Function 代码段</p>\n<ul>\n<li>源数据格式:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">        {\n            &quot;version&quot;: 1,\n            &quot;componentName&quot;: &quot;trade&quot;,\n            &quot;timestamp&quot;: 1595944295,\n            &quot;eventId&quot;: 9128499,\n            &quot;returnValue&quot;: -1,\n            &quot;returnCode&quot;: 101103,\n            &quot;returnMessage&quot;: &quot;return has no deal return error[错误：缺少**c参数][seqId:u3Becr8iz*]&quot;,\n            &quot;data&quot;: [],\n            &quot;seqId&quot;: &quot;@kibana-highlighted-field@u3Becr8iz@/kibana-highlighted-field@*&quot;\n        }</code></pre></div>\n<ul>\n<li>目标数据格式：</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">        {\n            &quot;timestamp&quot;: &quot;2020-07-28 21:51:35&quot;,\n            &quot;returnCode&quot;: 101103,\n            &quot;returnError&quot;: &quot;return has no deal return error&quot;,\n            &quot;returnMessage&quot;: &quot;错误：缺少**c参数&quot;,\n            &quot;requestId&quot;: &quot;u3Becr8iz*&quot;\n        }</code></pre></div>\n<ul>\n<li>Function 代码</li>\n</ul>\n<p>Function 实现的功能是将数据从源格式，通过清洗，过滤，格式化转化为目标数据格式，并转储到 Elasticsearch。代码的逻辑很简单：CKafka 收到消息后，触发了函数的执行，函数接收到信息后会执行 convertAndFilter 函数的过滤，重组，格式化操作，将源数据转化为目标格式，最后数据会被存储到 Elasticsearch。</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">#!/usr/bin/python\n# -*- coding: UTF-8 -*-\nfrom datetime import datetime\nfrom elasticsearch import Elasticsearch\nfrom elasticsearch import helpers\n\nesServer = &quot;http://172.16.16.53:9200&quot;  # 修改为 es server 地址+端口 E.g. http://172.16.16.53:9200\nesUsr = &quot;elastic&quot;  # 修改为 es 用户名 E.g. elastic\nesPw = &quot;PW123&quot;  # 修改为 es 密码 E.g. PW2312321321\nesIndex = &quot;pre1&quot;  # es 的 index 设置\n\n# ... or specify common parameters as kwargs\nes = Elasticsearch([esServer],\n                   http_auth=(esUsr, esPw),\n                   sniff_on_start=False,\n                   sniff_on_connection_fail=False,\n                   sniffer_timeout=None)\n\ndef convertAndFilter(sourceStr):\n    target = {}\n    source = json.loads(sourceStr)\n    # 过滤掉returnCode=0的日志\n    if source[&quot;returnCode&quot;] == 0:\n        return\n    dateArray = datetime.datetime.fromtimestamp(source[&quot;timestamp&quot;])\n    target[&quot;timestamp&quot;] = dateArray.strftime(&quot;%Y-%m-%d %H:%M:%S&quot;)\n    target[&quot;returnCode&quot;] = source[&quot;returnCode&quot;]\n    message = source[&quot;returnMessage&quot;]\n    message = message.split(&quot;][&quot;)\n    errorInfo = message[0].split(&quot;[&quot;)\n    target[&quot;returnError&quot;] = errorInfo[0]\n    target[&quot;returnMessage&quot;] = errorInfo[1]\n    target[&quot;requestId&quot;] = message[1].replace(&quot;]&quot;, &quot;&quot;).replace(&quot;seqId:&quot;, &quot;&quot;)\n    return target\n\n\ndef main_handler(event, context):\n    # 获取 event Records 字段并做转化操作 数据结构 https://cloud.tencent.com/document/product/583/17530\n    for record in event[&quot;Records&quot;]:\n        target = convertAndFilter(record)\n        action = {\n            &quot;_index&quot;: esIndex,\n            &quot;_source&quot;: {\n                &quot;msgBody&quot;: target  # 获取 Ckafka 触发器 msgBody\n            }\n        }\n        helpers.bulk(es, action)\n    return (&quot;successful!&quot;)</code></pre></div>\n<p>看到这里，大家可能会发现，这个代码段平时是处理单机的少量数据的脚本是一样的，就是做转化，转储，很简单。其实很多分布式的系统做的系统从微观的角度看，其实就是做的这么简单的事情。分布式框架本身做的更多的是分布式调度，分布式运行，可靠性，可用性等等工作，细化到执行单元，功能其实和上面的代码段是一样的。</p>\n<p>从宏观来看，Serverless Function 做的事情和分布式计算框架 Spark, Flink 等做的事情是一样的，都是调度，执行基本的执行单元，处理业务逻辑。区别在于用开源的方案，需要使用方去学习，使用，维护运行引擎，而 Serverless Function 则是平台来帮用户做这些事情。</p>\n<p>接下来我们来看 Serverless Function 在底层是怎么去支持这些功能的，来看一下其底层的运行机制。如图所示：</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597855148-7.png\" alt=\"图 4: Serverless Function 实现数据流转原理解析\"></p>\n<p>Function 作为一个代码片段，提交给平台以后。需要有一种触发函数运行的方式，目前主要有如下三种：事件触发、定时触发和主动触发。</p>\n<p>在上面的例子中，我们是以事件触发为例的。当消息提交到 Kafka，就会触发函数的运行。此时 Serverless 调度运行平台就会调度底层的 Container 并发去执行函数，并执行函数的逻辑。此时关于 Container 的并发度是由系统自动调度，自动计算的，当 Kafka 的源数据多的时候，并发量就大，当数据少的时候，相应的就会较少并发数。因为函数是以运行时长计费的，当源消息数据量少的时候，并发量小，自然运行时长就少，自然所需付出的资金成本就降下来。</p>\n<p>在函数执行过程当中，函数的可靠性运行，自动扩缩容调度，并发度等都是用户不需要关心的。用户需要 Cover 的只是函数代码段的可运行，无 BUG。这对于研发人员的精力投入成本就降低很多。</p>\n<p>值得一谈的是，在开发语言方面，开源方案只支持其相对应的语言，如 Logstash 的嵌入脚本用的是 ruby，spark 主要支持java，scala，python 等。而 Serverless Function 支持的是几乎业界常见到的开发语言，包括不限于 java，golang，python，node JS，php 等等。这点就可以让研发人员用其熟悉的语言去解决数据流转问题，这在无形中就减少了很多代码出错和出问题的机会。</p>\n<h2 id=\"serverless-function-在数据流转场景的优势\"><a href=\"#serverless-function-%E5%9C%A8%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC%E5%9C%BA%E6%99%AF%E7%9A%84%E4%BC%98%E5%8A%BF\" aria-label=\"serverless function 在数据流转场景的优势 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Serverless Function 在数据流转场景的优势</h2>\n<p>下面我们来统一看一下 Serverless Function 和开源的方案的主要区别及优势。如图5所示，和开源方案相比。在非实时的数据流转场景中，Serverless Function 相对现有的开源方案，它具有的优势几乎是压倒性的。从功能和性能的角度，它在批式计算（实时）的场景中是完全可以满足的。但是它相对开源方案在学习成本，运维成本几乎可以忽略，其动态扩缩容，按需付费，毫秒级付费对于资金成本的投入也是非常友好的。</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597854645-7.png\" alt=\"图 5：Serverless Function 对比现有开源方案的优势\"></p>\n<p>用一句话总结就是：Serverless Function 能用一段熟悉的语言编写一小段代码去衔接契合流式计算中的数据流转。</p>\n<h2 id=\"serverless-function-在批式计算场景的展望\"><a href=\"#serverless-function-%E5%9C%A8%E6%89%B9%E5%BC%8F%E8%AE%A1%E7%AE%97%E5%9C%BA%E6%99%AF%E7%9A%84%E5%B1%95%E6%9C%9B\" aria-label=\"serverless function 在批式计算场景的展望 permalink\" class=\"anchor\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Serverless Function 在批式计算场景的展望</h2>\n<p>随着流式计算的发展，慢慢演化出了批量计算 (batch computing)、流式计算 (stream computing)、交互计算 (interactive computing)、图计算 (graph computing) 等方向。而架构师在业务中选择批式计算或者流式计算，其核心是希望按需使用批式计算或流式计算，以取得在延时、吞吐、容错、成本投入等方面的平衡。在使用者看来，批式处理可以提供精确的批式数据视图，流式处理可以提供近实时的数据视图。而在批式处理当中，或者说在未来的批式处理和流式处理的底层技术的合流过程中，Lambda 架构是其发展的必然路径。</p>\n<p>Serverless Function 以其按需使用，自动扩缩容及近乎无限的横向扩容能力给现阶段的批式处理提供了一种选择，并且在未来批流一体化的过程中，未来可期。</p>\n<p><img src=\"https://img.serverlesscloud.cn/202085/1596597855844-7.png\" alt=\"图 6: 批式处理和流式处理\"></p>\n<hr>\n<hr>\n<div id='scf-deploy-iframe-or-md'></div>\n<hr>\n<blockquote>\n<p><strong>传送门：</strong></p>\n<ul>\n<li>GitHub: <a href=\"https://github.com/serverless/serverless/blob/master/README_CN.md\">github.com/serverless</a></li>\n<li>官网：<a href=\"https://serverless.com/\">serverless.com</a></li>\n</ul>\n</blockquote>\n<p>欢迎访问：<a href=\"https://serverlesscloud.cn/\">Serverless 中文网</a>，您可以在 <a href=\"https://serverlesscloud.cn/best-practice\">最佳实践</a> 里体验更多关于 Serverless 应用的开发！</p>","tableOfContents":"<ul>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#tencent-cloud-kafka-%E4%BB%8B%E7%BB%8D\">Tencent Cloud Kafka 介绍</a></li>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#%E4%BB%80%E4%B9%88%E6%98%AF%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC\">什么是数据流转</a></li>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC%E6%96%B0%E6%96%B9%E6%A1%88-serverless-function\">数据流转新方案: Serverless Function</a></li>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#serverless-function-%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC\">Serverless Function 实现数据流转</a></li>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#serverless-function-%E5%9C%A8%E6%95%B0%E6%8D%AE%E6%B5%81%E8%BD%AC%E5%9C%BA%E6%99%AF%E7%9A%84%E4%BC%98%E5%8A%BF\">Serverless Function 在数据流转场景的优势</a></li>\n<li><a href=\"/blog/2020-08-05-serverless-kafka/#serverless-function-%E5%9C%A8%E6%89%B9%E5%BC%8F%E8%AE%A1%E7%AE%97%E5%9C%BA%E6%99%AF%E7%9A%84%E5%B1%95%E6%9C%9B\">Serverless Function 在批式计算场景的展望</a></li>\n</ul>"},"previousBlog":{"id":"98e4daef-d285-556d-b1bc-6d72b80fcfcc","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020810/1597055615716-1597050436594-%E6%B5%B7%E6%8A%A5.jpg","authors":["Serverless 社区"],"categories":["meetup"],"date":"2020-08-14T00:00:00.000Z","title":"腾讯云 CFS 文件存储给 Serverless 云函数带来的业务新场景 | 在线分享第七期","description":"腾讯云云函数产品负责人黄文俊 (Alfred) 和腾讯云文件存储产品负责人龚幽兰 (Effie) 为您分享！","authorslink":null,"translators":null,"translatorslink":null,"tags":["CFS","Meetup"],"keywords":"Serverless CFS","outdated":null},"wordCount":{"words":42,"sentences":9,"paragraphs":9},"fileAbsolutePath":"/opt/build/repo/content/blog/2020-08-14-cfs-scf-meetup.md","fields":{"slug":"/blog/2020-08-14-cfs-scf-meetup/","keywords":["serverless","云函数","serverless","serverlesscloud","Serverless","腾讯","github"]}},"nextBlog":{"id":"e20e1cd9-8620-5308-ba61-adab42754f89","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020727/1595853036115-1595837973300-%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_15958379592139.jpg","authors":["Serverless 社区"],"categories":["meetup"],"date":"2020-07-31T00:00:00.000Z","title":"CKafka + 云函数 SCF 在数据分析场景的应用与实战 | 在线分享第六期","description":"腾讯云 Ckafka 产品经理夏子承、腾讯云高级研发许文强为您分享！","authorslink":null,"translators":null,"translatorslink":null,"tags":["Kafka","Meetup"],"keywords":"Serverless Kafka","outdated":null},"wordCount":{"words":72,"sentences":15,"paragraphs":15},"fileAbsolutePath":"/opt/build/repo/content/blog/2020-07-31-serverless-kafka-meetup.md","fields":{"slug":"/blog/2020-07-31-serverless-kafka-meetup/","keywords":["serverless","云函数","Serverless","Tencent","live","Hours","serverless","learning","edu"]}},"recommendBlogs":{"edges":[{"node":{"id":"73576d26-e0ce-5f26-9330-64b4f3889157","frontmatter":{"thumbnail":"https://main.qcloudimg.com/raw/3cb7b20955d78ced738e0279bb3f6f41.jpg","authors":["AndreaPasswater"],"categories":["news","engineering-culture"],"date":"2018-03-09T00:00:00.000Z","title":"Serverless 数据解读：2018 报告","description":"Serverless Framework 使用统计数据：事件源、服务结构、运行时长等等。","authorslink":["https://serverless.com/author/andreapasswater/"],"translators":["Aceyclee"],"translatorslink":["https://www.zhihu.com/people/Aceyclee"],"tags":["事件源","服务结构"],"keywords":"Serverless 统计数据,Serverless 事件源,Serverless 服务结构","outdated":null},"wordCount":{"words":212,"sentences":45,"paragraphs":45},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-03-09-serverless-by-the-numbers-2018-data-report.md","fields":{"slug":"/blog/2018-03-09-serverless-by-the-numbers-2018-data-report/","keywords":["go","serverless","无服务器","云函数","服务","使用率","Go","部署"]}}},{"node":{"id":"84876745-cbfb-5c1d-9f6c-7c74338d5d28","frontmatter":{"thumbnail":"https://s3-us-west-2.amazonaws.com/assets.site.serverless.com/images/champions/champions_banner.jpg","authors":["RupakGanguly"],"categories":["news","engineering-culture"],"date":"2018-04-10T00:00:00.000Z","title":"2018 年首批无服务器社区冠军介绍","description":"无服务器社区冠军是无服务器社区的领导者。快来认识一下我们 2018 年度的社区英雄吧！","authorslink":null,"translators":null,"translatorslink":null,"tags":null,"keywords":null,"outdated":null},"wordCount":{"words":194,"sentences":32,"paragraphs":32},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-04-10-announcing-new-2018-serverless-champions.md","fields":{"slug":"/blog/2018-04-10-announcing-new-2018-serverless-champions/","keywords":["serverless","webpack","无服务器","无服务器架构","服务器","serverless","champions","架构","blog","github","框架"]}}},{"node":{"id":"1e1a90fc-3b65-540c-b726-755999e7912a","frontmatter":{"thumbnail":"https://main.qcloudimg.com/raw/8a0db1c9fd8b51c15d0b006291d52bf5.jpg","authors":["AndreaPasswater"],"categories":["news","engineering-culture"],"date":"2018-07-19T00:00:00.000Z","title":"2018 年社区调查：Serverless 使用率大幅增长","description":"我们曾在开发社区进行问卷调查，询问 Serverless 的使用情况。它的使用率增长连我们自己都惊讶不已，下面来看看数据。","authorslink":["https://serverless.com/author/andreapasswater/"],"translators":["Aceyclee"],"translatorslink":["https://www.zhihu.com/people/Aceyclee"],"tags":["Component","Serverless"],"keywords":"Serverless 社区调查,Serverless 使用情况,Serverless 数据","outdated":null},"wordCount":{"words":267,"sentences":50,"paragraphs":49},"fileAbsolutePath":"/opt/build/repo/content/blog/2018-07-19-2018-serverless-community-survey-huge-growth-usage.md","fields":{"slug":"/blog/2018-07-19-2018-serverless-community-survey-huge-growth-usage/","keywords":["go","serverless","无服务器","Serverless","serverless"]}}},{"node":{"id":"8311b008-2b15-5225-8adc-9b75e484177b","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880819419-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%286%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-04-08T00:00:00.000Z","title":"邀您参加 | K8S&云原生技术开放日-北京站","description":"K8S&云原生技术开放日，将围绕K8S、Serverless等云原生相关技术，从最佳落地实践、不同场景技术改造、应用优化，到开源领域深度技术研究，和技术爱好者们一起探讨。","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["云原生","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":36,"sentences":9,"paragraphs":9},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-04-08-k8s.md","fields":{"slug":"/blog/2019-04-08-k8s/","keywords":["serverless","云原生","serverless","Serverless","技术","原生","serverlesscloud","github"]}}},{"node":{"id":"25f709db-cde0-59d7-81f4-944c46a6dd8a","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880571672-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%285%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-04-04T00:00:00.000Z","title":"Serverless 技术风暴来袭，开发者该如何应对？","description":"Hello Serverless技术沙龙北京站，将围绕Serverless的应用场景，客户案例，FaaS+BaaS架构的实现方案等，针对未来的无服务形态进行交流和讨论，释放技术想象！","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["应用场景","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":37,"sentences":8,"paragraphs":8},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-04-04-technology-storm.md","fields":{"slug":"/blog/2019-04-04-technology-storm/","keywords":["serverless","Serverless","serverless","serverlesscloud","github","技术","架构","围绕"]}}},{"node":{"id":"4bc4d946-6187-5c3d-91c6-d98c4c4c1314","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020414/1586880172144-%E5%B0%81%E9%9D%A2%E5%9B%BE%20%284%29.png","authors":["serverless 社区"],"categories":["news"],"date":"2019-06-11T00:00:00.000Z","title":"一图读懂无服务器云函数","description":"本图将重要信息进行梳理和提炼，帮助读者更好的理解无服务器云函数的理念和作用","authorslink":["https://zhuanlan.zhihu.com/ServerlessGo"],"translators":null,"translatorslink":null,"tags":["云函数","Serverless"],"keywords":"serverless 入门,serverless 框架,腾讯云 serverless","outdated":null},"wordCount":{"words":31,"sentences":6,"paragraphs":6},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-06-11-one-picture-serverless-cloud-function.md","fields":{"slug":"/blog/2019-06-11-one-picture-serverless-cloud-function/","keywords":["serverless","无服务器","无服务器云函数","云函数","serverless","serverlesscloud","Serverless","github","开发者","函数"]}}},{"node":{"id":"1cd76f95-14a9-5fd5-926b-456af189b7ed","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/2020326/1585217744291-%E6%91%84%E5%9B%BE%E7%BD%91_400730082_wx.jpg","authors":["朱峰 Ben"],"categories":["news"],"date":"2019-10-14T00:00:00.000Z","title":"由浅入深说 Serverless 之云函数的生命周期","description":"希望通过文章分享帮助大家更深入的了解 Serverless 背后的机制并掌握相关的最佳实践。","authorslink":["https://github.com/jiangliu5267"],"translators":null,"translatorslink":null,"tags":["云函数"],"keywords":"Serverless, Serverless前端开发, Serverless云函数","outdated":null},"wordCount":{"words":74,"sentences":29,"paragraphs":29},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-10-14-serverless-cloud-function.md","fields":{"slug":"/blog/2019-10-14-serverless-cloud-function/","keywords":["faas","java","云函数","函数","触发","实例","事件","数据库","启动","连接","sql","代码"]}}},{"node":{"id":"4f16f8bc-1a35-5394-9029-f7abc2ad6137","frontmatter":{"thumbnail":"https://img.serverlesscloud.cn/qianyi/images/YHl6UWa9s629ucl0iaVcic8rL06uEBM5go4LSXiaHnibDJSBjLGAhGlWz3QZ1RZzd3NeCibjJxOyUApDO7TaPYcwxsw.jpg","authors":["Serverless 中文网"],"categories":["news"],"date":"2019-10-26T00:00:00.000Z","title":"Hello Serverless 实战沙龙回顾","description":"2019 年 10 月 26 日，Hello Serverless 沙龙活动在广州市海珠区腾讯众创空间成功举办，一起看看我们都为大家准备了哪些精彩的演讲吧！","authorslink":["https://github.com/jiangliu5267"],"translators":null,"translatorslink":null,"tags":["Meetup"],"keywords":"Serverless, Serverless技术沙龙,Hello Serverless","outdated":null},"wordCount":{"words":64,"sentences":13,"paragraphs":13},"fileAbsolutePath":"/opt/build/repo/content/blog/2019-10-26-hello-serverless-meetup.md","fields":{"slug":"/blog/2019-10-26-hello-serverless-meetup/","keywords":["go","serverless","云函数","云原生","Serverless","存储","腾讯","serverlesscloud"]}}}],"totalCount":46}},"pageContext":{"isCreatedByStatefulCreatePages":false,"blogId":"d15dd69e-cd2c-5cfe-a27b-e44de4bd3ef4","previousBlogId":"98e4daef-d285-556d-b1bc-6d72b80fcfcc","nextBlogId":"e20e1cd9-8620-5308-ba61-adab42754f89","categories":["news"]}}}