基于 EventBridge 构建数据库应用集成
简介:本文重点介绍 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 提供了便利。
相关链接
EventBridge 事件总线及 EDA 架构解析-阿里云开发者社区
[2] RDS 官方文档
https://www.aliyun.com/product/rds/mysqlspm=5176.14414305.J_8058803260.32.267f5960ZjKXR3
[3] EventBridge 官方文档
本文为阿里云原创内容,未经允许不得转载。
基于 EventBridge 构建数据库应用集成的更多相关文章
- Redhat上为java Maven项目构建基于Jenkins + Github的持续集成环境
在Redhat enterprise 6.5 的服务器上,为在gutub 上的 java mvaen项目构建一个持续集成环境,用到了Jenkins.因公司的服务器在内网,访问外网时要通过代理,所以为m ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-2 Kubernetes实现Master-Slave分布式构建方案 传统Jenkins的Master-Slave方案的缺陷 Mas ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(下)
基于Kubernetes/K8S构建Jenkins持续集成平台(下) Jenkins-Master-Slave架构图回顾: 安装和配置NFS NFS简介 NFS(Network File System ...
- 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 使用Entity Framework Code First模式构建数据库对象 已经决定使用EF C ...
- SpringBoot数据库读写分离之基于Docker构建主从数据库同步实例
看了好久的SpringBoot结合MyBatista实现读写,但是一直没有勇气实现他,今天终于接触到了读写分离的东西,读写分离就是讲读操作执行在Slave数据库(从数据库),写操作在Master数据库 ...
- 基于Maven构建整合SpringMVC+Mybtis+Druid
前几天趁空闲时间整合了下SpringMVC+Mybatis+Druid,这里小记录下,这个Demo是基于Maven构建的,数据源用的是阿里巴巴温少的开源项目Druid,数据库用的是Mysql. 由于E ...
- 基于Kubernetes 构建.NET Core技术中台
今天下午在腾讯云+社区社区分享了<基于Kubernetes 构建.NET Core技术中台>,下面是演讲内容的文字实录. 我们为什么需要中台 我们现在处于企业信息化的新时代.为什么这样说呢 ...
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- DataPipeline丨构建实时数据集成平台时,在技术选型上的考量点
文 | 陈肃 DataPipeline CTO 随着企业应用复杂性的上升和微服务架构的流行,数据正变得越来越以应用为中心. 服务之间仅在必要时以接口或者消息队列方式进行数据交互,从而避免了构建单一数 ...
随机推荐
- [LeetCode] 5933. k 镜像数字的和
一.摘要 本文介绍了一种通过模拟寻找十进制镜像数字,然后判断其对应的k进制表示是否也是镜像的方法.具体来讲即从小到大遍历10进制的镜像数字,然后对10进制镜像数字转为k进制,然后判断转为k进制后是否还 ...
- MySQL varchar详解
说明:以下结果都是在mysql8.2及Innodb环境下测试. varcahr(255)是什么含义? varchar(255) 表示可以存储最大255个字符,至于占多少个字节由字符集决定. varch ...
- 记录--通过Promise实现分批处理接口请求
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何通过 Promise 实现百条接口请求? 实际项目中遇到需要批量发起上百条接口请求怎么办? 最新案例代码在此!点击看看 前言 不知你项 ...
- 创建远程仓库&克隆项目(Github)
创建远程仓库 在GitHub上注册一个账号,之后creat a new repository 创建的远程仓库把它看作一个百度网盘就可以了 克隆项目 1.远程仓库可以下载\克隆到本地 code :git ...
- CYarp:力压frp的C#高性能http内网反代中间件
我以前开发过HttpMouse的http内网反代中间件,但由于当时的知识点与设计水平受限,所以把它下马了.随着自身又遇到http内网反代的需求,在frp不能满足我需求情况下,我又启动了一个叫CYarp ...
- vscode 屏蔽某些文件夹
vscode 屏蔽某些文件夹 File--Preferences--Settings(Ctrl + ,) 搜索框里搜索 Files:Exclude 点击 Add Pattern ,如果想屏蔽掉所有 . ...
- MySQL与Java JDBC数据类型对照
MySQL数据类型 JAVA数据类型 JDBC TYPE BIGINT Long BIGINT TINYINT Byte TINYINT SMALLINT Short SMALLINT MEDIUMI ...
- KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理
KingbaseES使用sys_backup.sh脚本init初始化配置文件常见错误处理: 一.sys_backup.sh脚本按照如下顺序寻找初始化配置文件: [kingbase@postgres ~ ...
- Unit 1 Computer hardware【石家庄铁道大学-专业英语课程复习资料】
Unit 1 Computer hardware 1.Introduction of computer A computer is a machine that can be instructed t ...
- ET介绍——强大的基于.dotnet7+Unity3d的双端C#开源游戏框架
ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时 ...