在专用 Exadata 基础结构上对 Autonomous Database 使用 Advanced Queuing
Autonomous Database 支持 Transactional Event Queues (TEQ) 来实施数据库集成的消息队列功能。
Oracle Transactional Event Queues (TEQ)
现代消息传递系统支持点对点消息传递,并支持在应用之间发布/订阅消息和事件。作为微服务构建的应用程序需要消息传递,工作流系统也是如此。事件网格在应用程序之间传输和路由应用程序事件变得越来越普遍。与 Apache Kafka 的主题/分区一样,事务性事件队列使用队列表/事件流(AQ 分片队列使用队列表/分片)作为分区抽象。
Transactional Event Queues (TEQ) 是数据库 12.2.0. 1 (2015) 中引入的 Advanced Queuing 的分区和内存中实现。TEQ 队列支持 JMS 规范,可以使用 Java、Python、Node.js、PL/SQL、C/C++、.NET 和 Go 访问。
事务处理事件队列 (TEQ) 将用户消息存储在称为队列的抽象存储单元中。当微服务相互通信或应用程序属于工作流、生成器应用程序入队消息和使用者应用程序出队消息时。
Oracle Transactional Event Queues (TEQ) 提供数据库集成消息队列功能。此功能利用 Oracle Database 的功能,以便可以持久存储消息,在不同计算机和数据库上的队列之间传播消息,并使用 Oracle Net Services 和 HTTP(S) 进行传输。有关详细信息,请参阅 Oracle Database 19c Advanced Queuing User's Guide 或 Oracle Database 23ai Advanced Queuing User's Guide 中的 Oracle Database Advanced Queuing 。
在 Autonomous Database 中实施消息队列
- 管理界面:包含子程序的 PL/SQL 程序包的集合,通过这些子程序可以管理队列、队列表、转换以及其他管理任务,例如向 TEQ 用户授予和撤消权限。您必须以具有管理权限的用户身份连接才能访问这些子程序。要了解如何创建管理用户,请参阅 Oracle Database 19c 或 Oracle Database 23ai 中的示例列表。
- 编程接口:Oracle Database Advanced Queuing 为各种编程语言(如 PL/SQL、C、Java (JMS) 和 AQ XML (servlet) 提供编程接口,以实施高级队列 (Advanced Queuing,AQ) 应用程序环境。有关 AQ 程序接口、每个接口支持的函数以及语法参考的列表,请参见 Programmatic Interfaces for Accessing Oracle Database Advanced Queuing in Oracle Database 19c or Oracle Database 23ai 。
提示:
对于演示如何使用高级队列的“试用”替代方案,您可以按照使用 Oracle 融合数据库构建微服务研讨会中概述的说明进行操作。