Oracle的事务性事件队列(TEQ)介绍

288 阅读2分钟

利用Oracle事务性事件队列进行开发

本文对Oracle的事务性事件队列(TEQ)进行了快速浏览,因此试图在高层次上尽可能多地覆盖,同时给出快速、低层次和代码示例。有相当多的材料,有多个与TEQ及其在现代应用开发和微服务中的使用相关的研讨会,可以在这篇文章的末尾找到。

Oracle事务性事件队列(以前称为高级队列)已经存在并被广泛使用了几十年(远早于Kafka),是很好的硬技术。下面是一个时间轴,供大家了解。

Oracle事务性事件队列内置于Oracle数据库中,为微服务、流式事件和pub/sub提供了一个高性能、高吞吐量和可靠的消息传递平台,以及在Oracle数据库中运行的所有固有的HA、安全性等优势。它支持分片和传播,并提供所有常用语言的API,如Java、Python、Javascript、C、.Net和PL/SQL,以及Kafka和REST APIs。同样,上述的所有方面,以及从AQ迁移到TEQ的迁移工具,在上面提到的视频中都有简单的展示。

TEQ在SQLcl命令行工具中的集成允许在shell中进行强大而方便的管理,而 由Oracle REST数据服务提供的TEQ的REST API允许以方便的方式连接和查看各种队列特征,而无需发布任何代码。 这也允许创建简单的用户友好界面。

对TEQ的监控是由Oracle数据库的指标导出器提供的,该导出器被刮开,为Grafana提供Prometheus指标,用于分析、警报等。

TEQ的事件代理和事件网状结构提供了许多功能,包括甚至跨区域传播消息的能力,通过Kafka连接器桥与Kafka代理互通,甚至允许开发人员在无缝使用TEQ和它提供的优势的同时对Kafka API进行编程。

最后,由于TEQ在数据库中运行,它具有非常独特的能力,可以在同一个本地事务中进行消息传递和数据库操作。这为开发者提供了巨大的力量和简化,特别是在微服务环境中,数据完整性和事务性的消息传递保证是至关重要的。我在我的博客Apache Kafka vs. Oracle事务性事件队列作为微服务事件网中阐述了这方面的内容。

我希望你在这次快速浏览后能对TEQ有一个更好的理解。