乐趣区

关于java:AI-事件驱动场景-Serverless-实践

作者 | 李鹏(元毅)
起源 | Serverless 公众号

一、事件驱动框架:Knative Eventing

事件驱动是指事件在继续事务管理过程中,进行决策的一种策略。能够通过调动可用资源执行相干工作,从而解决一直呈现的问题。艰深地说是当用户触发应用行为时对用户行为的响应。在 Serverless 场景下,事件驱动完满合乎其设计初衷之一:按需付费。

1. Knative 模型

图:Knative 模型

Knative 次要包含两大部分:一是用于工作负载的 Serving,包含版本治理、灰度流量、主动弹性;二是 Eventing(事件驱动框架)。

  • 外围玩家

    • Google;
    • IBM;
    • Pivotal;
    • RedHat;
    • SAP。
  • 友商相干产品

    • Google CloudRun;
    • IBM;
    • Pivotal Function Service(PFC);
    • OpenShift。

2. 事件驱动框架:Eventing

Knative 的 Eventing 提供了一个残缺的事件模型,不便接入各个内部零碎的事件。事件接入当前,通过 Cloud Event 规范在外部流转,联合 Broker-Trigger 模型进行事件处理。

从上图能够看到,Eventing 中蕴含三局部内容:

  • 事件源
  • Broker-Trigger:事件驱动模型,这个模型在晚期 16 年的版本开始呈现,其原理是 Trigger 订阅 Broker 信息并过滤,最初将事件发送到对应的服务进行生产。
  • 音讯零碎:在 Eventing 中每个 Broker 上面对应一个音讯的零碎,来承载对事件的整个流转。目前社区反对的音讯零碎包含 Kafka、NATS、Rocket MQ、Rabbit MQ 等。

3. 要害个性:事件规定

事件规定的外围是 Broker-Trigger 模型,它蕴含以下个性:

  • Trigger 的 filter 的作用是对 Event 进行内容过滤;
  • 反对对 Event 的 Attribute 以及 Data 的内容进行过滤;
  • 反对 Common Expression Language(CEL)表达式过滤;
  • 反对通过 SourceAndType(事件源类型)进行过滤。

二、事件驱动引擎 - 事件源

1. 事件源介绍

Knative 社区中提供了丰盛的事件源接入,包含 Kafka、Github,也反对接入音讯云产品的一些事件,比方 MNS、RocketMQ 等。

如上图所示,接入事件源之后,能够通过 Broker-Trigger 模型申请相应的服务。这些服务包含一些具体场景,比方从源码构建镜像、自动化镜像公布、AI 音视频解决、定时工作等。所有的事件都须要这样的事件源来拉取,而后下发到 Eventing 整个事件流转过程。

  • 事件接入

    • 接入音讯云产品事件源;
    • 通过 MNS 接入更多云产品的事件。
  • 事件处理

    • Knative Eventing 外部实现事件的订阅、过滤和路由机制;
    • 事件最终通过 Knative 治理的 Serverless 服务进行生产。
  • 典型案例

    • AI 音视频解决;
    • 代码提交主动构建镜像。

2. RocketMQ 事件源

音讯队列 RocketMQ 版是阿里云基于 Apache RocketMQ 构建的低提早、高并发、高可用、高牢靠的分布式消息中间件。

音讯队列 RocketMQ 版既可为分布式应用零碎提供异步解耦和削峰填谷的能力,同时也具备互联网利用所需的海量音讯沉积、高吞吐、牢靠重试等个性。

RocketMQSource 是 Knative 平台的 RocketMQ 事件源。其能够将 RocketMQ 集群的音讯以 Cloud Event 的格局实时转发到 Knative 平台,是 Apahe RocketMQ 和 Knative 之间的连接器。

3. Kafka 事件源

音讯队列 Kafka 版是阿里云基于 Apache Kafka 构建的高吞吐量、高可扩展性的分布式音讯队列服务,宽泛用于日志收集、监控数据聚合、流式数据处理、在线和离线剖析等,是大数据生态中不可或缺的产品之一,阿里云提供全托管服务,用户无需部署运维,更业余、更牢靠、更平安。

三、AI 事件驱动场景实际

以具体场景为例,该案例是一个 直播零碎,零碎每天都有海量的直播拜访,访问量依据直播热度随时变动,弹性有稳定,同时存在不定时的增量。客户的诉求,一是业务弹性稳定,音讯并发性比拟高;二是互动实时响应,要求低提早。

为了满足对音讯解决的 弹性稳定、高并发及低提早 的要求,客户抉择阿里云的 Knative 服务进行数据的弹性解决。阿里云 Knative 齐全符合了用户以后的诉求,并且在接入 K8s 规范之上,提供了基于事件和音讯的弹性调度。

当利用实例数随着业务的波峰波谷进行扩容和缩容时,真正做到了 按需应用、实时弹性 的能力。整个过程齐全自动化,缩小业务开发人员在基础设施上的累赘。在这个案例中,Knative 次要提供了三个能力:极致弹性、事件处理、开箱即用。

上面进行示例演示,演示内容次要有:

  • 部署 Kafka 事件源
  • 部署事件网关
  • 部署服务
  • 模仿事件处理

演示过程观看链接:https://developer.aliyun.com/live/246128

作者简介:
李鹏,花名:元毅,阿里云容器平台高级开发工程师,2016 年退出阿里,深度参加了阿里巴巴全面容器化、间断多年反对双十一容器化链路。专一于容器、Kubernetes、Service Mesh 和 Serverless 等云原生畛域,致力于构建新一代 Serverless 平台。以后负责阿里云容器服务 Knative 相干工作。

退出移动版