关于云原生:基于-EventBridge-轻松搭建消息集成应用

7次阅读

共计 4505 个字符,预计需要花费 12 分钟才能阅读完成。

前言

本篇文章次要介绍基于阿里云 EventBridge 的音讯集成能力,联合目前音讯产品的需要热点,从能力范畴到场景实战,对 EventBridge 的音讯集成解决方案进行了概要的介绍。

01 从音讯现状谈起

音讯队列作为利用解耦,流量削峰填谷的无效工具,早已被开发者广泛应用于各类分布式服务中。随着业务的一直倒退迭代,越来越多的服务面临着稳定性和可保护方面的挑战,对音讯队列的需要也不再局限于一般的订阅 - 生产,这里列举 3 个场景的能力需要:

音讯路由能力

这里次要的需要场景是数据同步和异地灾备。对于大多数音讯队列用户而言,音讯队列中的业务数据个别由一类服务来生产和解决,当用户有多个利用,且须要一个全局视线来汇总剖析这些不同利用的数据时,音讯路由就成了一个避不开的能力需要。同样,出于数据灾备的思考,云上大用户通常也有在不同 region 同步音讯数据的需要。

但在云上实现音讯路由可能并不是一件容易的事件。家喻户晓,云上个 region 之间网络是严格隔离的,用户想要实现数据的跨 region 传输,要么应用 CEN 等网络买通计划,要么应用公网进行数据传输。前者须要业务在设立之初就有齐备的网络布局,同时 CEN 的费用老本也是一笔不小的开销;后者则须要思考公网带宽老本,和将数据裸露在公网所面临的平安问题。

音讯加工能力

构想这样一个场景,电商平台上,用户的订单信息是由 RocketMQ 来负责承载的,上游的领取、库存、营销部门都须要生产订单信息,因为历史和技术栈起因,这几个部门应用的音讯产品类型各不相同,别离是 RocketMQ、RabbitMQ 和 Kafka,而且这几个部门所须要的并不是全量的原始音讯,而是局部本人感兴趣的。同时,本身的接口也对数据 schema 做出了肯定的要求,并不冀望原始音讯投递过去。

此时,单纯的音讯路由仿佛也不能满足需要。如果这项工作交给一款产品来解决,那么这款产品须要满足 2 点能力,第一就是将音讯路由至其余品种音讯产品的能力,另外一点就是必须具备数据的过滤加工能力。

生态扩大能力

传统音讯用户,其音讯的生命周期仅在本身业务的发送与生产阶段。但在万物上云的明天,如果能够利用品种繁多,功能强大的各类云产品来丰盛音讯的上下游,则将极大地挖掘音讯数据的潜在价值。例如用户可能须要将 SLS 的日志数据导入到音讯队列,以实现离线的数据加工能力;又或者可能须要将音讯队列中的数据用于触发函数计算,以实现整个利用的 Serverless 化。

但现状是,用户如果本身去实现各个生态产品的对接,则面临着开发工作量大,后续保护繁琐的问题。最现实的形式是有一款开箱即用的工具,可能对接足够多的生态,而且自身应用也尽量简略。

那么是否有一款云产品能够解决以上问题,帮忙音讯用户实现便捷、牢靠的音讯集成能力呢?这里就须要介绍本期的配角:阿里云事件总线 EventBridge。

02 事件总线与音讯集成

事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,反对阿里云服务、自定义利用、SaaS 利用以标准化、中心化的形式接入,并可能以标准化的 CloudEvents 1.0 协定在这些利用之间路由事件。

EventBridge 的外围能力能够演绎为 3 点:对立事件服务、数据管道与凋谢与集成。

  • 对立事件服务

在 EventBridge 呈现之前,各个云产品的事件互相独立,用户无奈在一个中央中央实现对全副云产品事件的收集和解决。EventBridge 的呈现突破了这一场面,其收纳了云上的绝大多数云产品事件,并在用户侧提供对立、体系的展现交互,让云上用户能够更加零碎的梳理、解决云产品事件。

  • 数据管道

EventBridge 并不简简单单仅笼罩云上事件,也提供数据管道的能力,实现数据的联通交互。例如用户能够应用 EventBridge 创立音讯路由工作,将音讯队列中的数据导入到其余音讯队列,也能够创立工作将 SLS 中的日志数据导入到音讯队列中来。目前 EventBridge 在源端和指标端均有丰盛的产品种类反对。

  • 凋谢与集成

EventBridge 凋谢了多种语言的 SDK,不便不同技术栈的开发者能够疾速不便的应用 EventBridge。同时 EventBridge 也兼容了云上规范 Cloudevents 的 sdk,即用户应用业界开源 sdk 也能够不便的将事件投递至 EventBridge。在事件 schema 定义上,EventBridge 采纳了目前云上事件的事实标准 cloudevents 1.0,保障了应用其余事件服务的客户能够无缝迁徙到阿里云 EventBridge,其在阿里云 EventBridge 上的事件也能够疾速接入到其余支流 EDA 引擎,防止了厂商锁定的状况。

针对第一局部谈及的音讯用户面临的问题,EventBridge 在音讯集成畛域提供了残缺的解决方案,具体包含音讯流转(也称为音讯路由)能力解决方案,音讯解决能力解决方案与生态反对能力解决方案。

音讯流转解决方案

目前 EventBridge 曾经反对了云上大部分音讯产品的接入,如 RocketMQ、RabbitMQ、Kafka、MNS 和 MQTT。应用这些音讯产品的用户,能够在对应音讯产品的控制台,音讯流入流出页面,或者是 EventBridge 的控制台来创立对应的路由工作。

针对局部云上用户的需要,EventBridge 还反对跨 region 和跨账号的音讯路由。

针对跨 region 场景,当用户须要创立北京到上海的音讯路由时,在音讯队列控制台音讯流入流出页面,抉择好对应的源实例信息和指标实例信息,一键创立启动即可。

当用户有跨账号音讯路由的需要(例如一家公司不同部门各自领有独立账号,须要对各部门进行数据汇总的场景)时,应用 EventBridge 的事件总线能够实现不同账号间数据的同步。具体具体创立工作步骤能够参考 EventBridge 的官网文档。

当用户本身的音讯源不是云上产品时,目前 EventBridge 也提供了多种便捷的形式帮忙用户疾速对接。如果用户是在云上自建的音讯服务,如自建 RocketMQ,EventBridge 曾经反对用户通过简略的配置疾速将音讯数据接入进来。如果用户服务是部署在自建机房,应用的音讯产品并非云上已反对的产品,这个时候用户也能够应用 EventBridge 提供的 sdk 被动将事件投递上来,进而写入到云上各类丰盛的上游云产品,此类场景适宜迁徙上云客户。

音讯解决解决方案

EventBridge 目前提供了丰盛的事件提取和加工能力,用户能够配置多种多样的过滤与加工规定来满足其业务须要。

举个例子,用户的事件有一个字段是订单类型,内容有在线订单和线下订单两类。用户冀望过滤订单类型为在线订单的数据,投递到解决在线业务的函数计算服务。这里就能够在过滤规定中,参考指定值匹配,设置过滤规定中对应字段的值为在线订单。

除了指定值匹配,EventBridge 还反对前缀匹配、后缀匹配、除外匹配、数值匹配、数组匹配、简单组合匹配等逻辑,满足客户绝大部分场景诉求。

有时用户并不冀望原样的事件内容传递至指标端,而是加工成肯定格局后再进行投递,对此 EventBridge 也提供了事件转换能力。目前反对的转换器类型包含残缺事件、局部事件、常量、模板、和函数计算转换器。这些转换器分工各有差别,搭配应用能够帮忙用户从事件体中提取出局部有价值字段,并依照要求拼接成指标端须要的数据格式。

音讯生态解决方案

针对音讯生态闭环的问题,EventBridge 的染指能够无效地裁减其上下游生态丰盛度。

在音讯流入侧,EventBridge 反对音讯类产品如 MNS、Kafka,数据库类产品如 DTS、云上管控、报警事件以及自定义事件的接入,使用户能够便捷地获取各类事件数据。

在音讯流出侧,EventBridge 反对计算类产品如 FC、SAE,数据库类产品 RDS、告诉类产品如钉钉、微信,通用类 API 如 http target 以及第三方 Saas 利用的触发。音讯产品的用户通过简略的配置就能够将音讯导入到上游服务以产生业务价值。

03 场景与实战

上面,咱们列举几个场景并看下在音讯产品管制台上创立对应工作的步骤。

音讯路由场景

第一个场景就是跨可用区音讯路由场景,用户如果有灾备或者数据汇总的需要时,可能会面临此问题。

如图所示,用户的业务部署在杭州、北京、青岛 3 个 region。每个 region 都独立解决本 region 的业务数据。但为了搭建一个全局范畴的数据大盘服务,须要用户汇总各个 region 的音讯产品数据。

在这里,用户能够应用 EventBridge 的音讯集成能力,别离创立杭州到北京和青岛到北京的音讯路由工作,再应用一个独立的生产组去生产这些音讯,即可实现跨 region 的音讯数据汇总。

但有一点须要留神,在异地容灾场景下,用户须要配置双向路由时,肯定要配置适合的过滤规定以防止数据成环。

当初咱们看下创立此跨 region 音讯路由工作的步骤。因为这些服务是由 EventBridge 来提供的,所以须要用户提前开明 EventBridge 服务,并在概览页授予 EventBridge 拜访相干云产品服务的权限

这里以创立一个北京到上海的 RocketMQ 音讯路由工作为例,首先登陆 RocketMQ 控制台。

1. 在控制台左侧页面,抉择音讯流出,点击创立工作。
2. 在创立任务栏中,流出类型抉择音讯队列 RocketMQ。
3. 随后在弹出的工作配置下拉参数中,源端的地区抉择为北京,RocketMQ 实例信息依照理论状况填写。

4. 在指标端,抉择流入的上海 RocketMQ 实例,填入相干信息。

5. 音讯过滤和音讯转换依照须要填写,点击确定。

6. 期待 1-2 分钟,就能够看到音讯路由工作曾经处于运行中状态,这表明音讯路由工作曾经胜利创立并运行。

离线加工场景

第二个场景是一个音讯离线数据分析的场景。

用户除了对 MQ 中的音讯进行即时业务生产,也须要将其导入到 SLS 中,以用作数据分析和报警配置。同时用户还对写入到 SLS 的内容格局有肯定要求。

这里用户能够在音讯流入流出页面创立一个工作,将数据经由 EventBridge 导入到 SLS。在配置工作的过程中,依照图中示例的变量和模板配置,就能够将原始数据内容中的 name 和 state 字段提取进去,依照需要生成新的内容格局。

还是以 RocketMQ 举例,在 RocketMQ 控制台音讯流出页面,点击创立工作。

1. 在流出类型中抉择日志服务 SLS。
2. 在下方的工作参数配置中,在源端抉择对应的 RocketMQ 实例信息,在指标端抉择对应的 SLS project 和 logStore。

3. 在日志内容格局局部,依照图中提醒的变量和模板配置,将对应内容填入,点击确定。

4. 期待 1-2 分钟,就能够看到音讯写入 SLS 的工作曾经处于运行中状态,这表明工作曾经胜利创立并运行。

以上就是阿里云 EventBridge 的音讯集成能力的介绍。后续 EventBridge 还会加大对音讯畛域能力的反对,帮忙用户低成本的实现音讯数据价值。感兴趣的敌人能够关注 EventBridge 官网与官网文档,第一工夫获取最新产品音讯。

作者:昶风

点击立刻收费试用云产品 开启云上实际之旅!

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0