简介:本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标。

作者:赵海

引言

事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持将阿里云服务、自定义应用、SaaS 应用以标准化、中心化的方式接入,并能够以标准化的 CloudEvents 1.0 协议在这些应用之间路由事件,帮助您轻松构建松耦合、分布式的事件驱动架构。事件驱动架构是一种松耦合、分布式的驱动架构,收集到某应用产生的事件后实时对事件采取必要的处理,然后路由至下游系统,无需等待系统响应。使用事件总线 EventBridge 可以构建各种简单或复杂的事件驱动架构,以标准化的 CloudEvents 1.0 协议连接云产品和应用、应用和应用等。更多 EventBridge 介绍参考[1]《EventBridge 事件总线及 EDA 架构解析》

事件目标(Target)负责事件的处理终端与消费事件,是 EventBridge 的核心模块。针对市场上其他云厂商和垂直领域的 DB 服务,EventBridge 发布基于事件目标模块的数据库 Sink,提供简单且易于集成的 DB 落库能力,帮助开发者更加高效、便捷地实现业务上云。

数据库 Sink 概述

数据库 Sink 事件目标是 EventBridge 支持的事件目标的一种,主要能力是通过 EventBridge 将数据投递至指定数据库表中。

得益于 EventBridge 生态体系,数据库 Sink 支持众多接入方式:

  • 阿里云云产品事件,EventBridge 支持云服务总线,通过简单配置即可直接对云服务相关事件进行入库操作;
  • SaaS 应用事件,EventBridge 支持三方 SaaS 事件接入,支持对 SaaS 触发事件落库、查询;
  • 用户自定义应用,用户可以使用 EventBridge 官方的 API 接口、多语言客户端、HTTP Source 以及 CloudEvents 社区的开源客户端来完成接入。

数据库 Sink 能力重点聚焦在如何将 EventBridge 业务的半结构化 Json 数据转为结构化 SQL 语句,提供 LowCode 交互接入,帮助开发者一站式完成数据入库。

数据库 Sink 最佳实践

典型案例:

  • 希望把一些 MNS 的消费消息或者 RocketMQ 的消费消息存储到指定的数据库表中,方便后面的数据分析和消息排查,也可以通过这种方式把数据新增到数据库表中;
  • 通过 HTTP 的事件源把一些重要的日志或者是埋点数据直接存储到 DB 中,不需要经过用户业务系统,可以方便后续的客户场景分析。

使用介绍:

首先现阶段数据库 Sink For MySQL 支持两种方式:一种是基于阿里云的 RDS MySQL(VPC),另一种是用户自建的 MySQL(公网),可根据业务场景选择的不同方式接入。

步骤一 :点击事件规则并创建事件规则

步骤二 :选择事件源

可以选择阿里云官方或者自定义事件源

步骤三 :选择事件目标

1)在事件目标下面的服务类型选择数据库,这时会有两个选项就是一个是阿里云的 RDS MySQL,一个是自建 MySQL;

2)如果是阿里云 RDS MySQL,需要创建服务的关联角色。

3)授权以后就可以选择用户自己创建的 RDS MySQL 数据库的实例 ID 和数据库名称。

数据库账号和密码需手动填写,并发配置可以根据实际业务需要进行填写。因为 RDS MySQL 涉及到了跨地域访问,所以需要专有网络 VPC 的支持。

步骤四 :入库配置

入库配置支持快速配置自定义 SQL 两种方式:

1)快速配置,支持 LowCode 方式快速选择入库内容。

2)自定义 SQL,支持自定义高级 SQL 语法。

步骤五:事件发布

当创建成功以后可以通过控制台进行事件发布:

步骤六 :事件状态追踪和查询

可以通过上个步骤中的事件 ID 可看到轨迹的详细信息,包括事件执行成功与否等信息。如果事件执行失败,会在页面展示异常信息。

通过事件追踪也可以看到详细的事件轨迹 :

总结

本文重点介绍 EventBridge 的新特性:数据库 Sink 事件目标。

作为一款无服务器事件总线服务,EventBridge 已经将阿里云云产品管控链路数据和消息产品业务数据整合到事件源生态中,提高了上云用户业务集成的便捷性,满足 Open API 与多语言 sdk 的支持,在此基础之上,通过 EventBridge 将数据投递至指定的数据库表中,为客户自身业务接入 EventBridge 提供了便利。

相关链接

[1] 更多 EventBridge 介绍

EventBridge 事件总线及 EDA 架构解析-阿里云开发者社区

[2] RDS 官方文档

https://www.aliyun.com/product/rds/mysqlspm=5176.14414305.J_8058803260.32.267f5960ZjKXR3

[3] EventBridge 官方文档

事件总线EventBridge - 帮助中心 - 阿里云

原文链接

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

基于 EventBridge 构建数据库应用集成的更多相关文章

  1. Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境

    在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...

  2. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...

  3. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...

  4. 基于Kubernetes/K8S构建Jenkins持续集成平台(下)

    基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...

  5. 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 使用Entity Framework Code First模式构建数据库对象 已经决定使用EF C ...

  6. SpringBoot数据库读写分离之基于Docker构建主从数据库同步实例

    看了好久的SpringBoot结合MyBatista实现读写,但是一直没有勇气实现他,今天终于接触到了读写分离的东西,读写分离就是讲读操作执行在Slave数据库(从数据库),写操作在Master数据库 ...

  7. 基于Maven构建整合SpringMVC+Mybtis+Druid

    前几天趁空闲时间整合了下SpringMVC+Mybatis+Druid,这里小记录下,这个Demo是基于Maven构建的,数据源用的是阿里巴巴温少的开源项目Druid,数据库用的是Mysql. 由于E ...

  8. 基于Kubernetes 构建.NET Core技术中台

    今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...

  9. 视频私有云实战:基于Docker构建点播私有云平台

    私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...

  10. DataPipeline丨构建实时数据集成平台时,在技术选型上的考量点

    文 | 陈肃 DataPipeline  CTO 随着企业应用复杂性的上升和微服务架构的流行,数据正变得越来越以应用为中心. 服务之间仅在必要时以接口或者消息队列方式进行数据交互,从而避免了构建单一数 ...

随机推荐

  1. Android自定义View使用系统自有属性

    原文链接: Android自定义View使用系统自有属性 - Stars-One的杂货小窝 本篇默认各位有自定义View的相关知识,本篇只作为一个小知识点补充 有这样一种情况,比如说我们的一个自定义V ...

  2. oracle错误之未知的命令开头imp忽略了剩余行解决方案

    现象:执行imp命令如下: imp username/password@orcl full=y  file=C:\optimove.dmp ignore=y  解决方案: imp 命令是在dos提示符 ...

  3. drf(路由)

    一 自动生成路由 基本使用 # 视图类,继承了ViewSetMixein,路由 # path('books/', views.BookViewSet.as_view(actions={'get': ' ...

  4. JavaScript知识总结 数据类型篇

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined.Null.Boo ...

  5. OpenLayers 点击显示经纬度Demo

    这里给大家分享我在OpenLayers 地图开发工作中总结出的一下代码和注意点,希望对大家有所帮助 效果如下: 核心代码展示:附带讲解注释 var map = new ol.Map({ // 初始化地 ...

  6. PyCharm专业版延长使用时间【极简】

    关注公众号[靠谱杨阅读人生]回复[py]获取破解包! 准备好最新版本的PyCharm(去官网下载页面上的第一个就可以,我使用的版本如下图所示) 打开软件选择试用,进去之后可以新建一个项目然后把这个压缩 ...

  7. 5W1H聊开源之What——开源协议有哪些?

    开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议.开源协议规定了用户在使用开源软件时的权利和责任,虽然不一定具备法律效力,但是当涉 ...

  8. #对偶图最短路,网络流#洛谷 4001 [ICPC-Beijing 2006]狼抓兔子

    题目 网格图最小割\((n,m\leq 1000)\) 分析 首先网络流可以过,但是由于无向图,所以残量网络容量也为\(w\),\(Dinic\)玄学AC,代码就不贴了 那有没有其它方法呢,网格图显然 ...

  9. #扩展域并查集,线段树分治#CF576E Painting Edges

    题目链接 题目翻译 给定一张 \(n\) 个点 \(m\) 条边的无向图. 一共有 \(k\) 种颜色,一开始,每条边都没有颜色. 定义合法状态为仅保留染成 \(k\) 种颜色中的任何一种颜色的边,图 ...

  10. Spring源码 19 IOC getBean方法

    前面实现了 ClassPathXmlApplicationContext 的构造,接下来分析其调用的 getBean 方法. 以 getBean(UserDao.class) 为例. 1 Abstra ...