声明:此问主要内容翻译自国外的这篇文章:https://dbasolved.com/2017/08/26/goldengate-classic-vs-microservices-architecture/
感谢原创作者的精彩分享。
Oracle GoldenGate从12c(12.3)版本开始,提供了新的基于微服务体系的软件系统架构。新的微服务架构提供了很多新的特点和优势。
我们开始讨论GoldenGate新的微服务架构前,我们先来看看GoldenGate传统的软件架构是什么样的,下图是GoldenGate传统的软件系统架构图。

在GoldenGate的传统系统架构中,GoldenGate的设置、管理工作都是通过GoldenGate的命令行接口(GGSCI)来完成的。GoldenGate需要部署在执行数据复制的数据库服务器上,我们通过部署在本地的GoldenGate的GGSCI命令行接口完成我们和本地部署的GoldenGate的交互。比如增加、管理GoldenGate的管理进程、数据抽取进程、数据泵进程、数据投递进程等。在这个传统的架构中数据通过TCP/IP网络在源端和目标端完成数据的复制和同步。整体架构采用低耦合的软件价格,所以GoldenGate可以用于多种场景,实现多种数据复制和同步的拓扑,比如:一对一、一对多、多对一、双向等复制架构。
GoldenGate这种传统的软件架构,也有它的不足和局限。我们为了完成GoldenGate的管理任务,不得不远程登陆到部署了GoldenGate的服务器上来完成管理任务,这大大限制了GoldenGate的广泛使用。
尽管GoldenGate的传统架构已经被大家所熟知,但是面对现在新技术和新需求的挑战,Oracle也在不断地探索,经过不断的发展和努力终于推出了GoldenGate新的基于微服务体系架构的新的软件系统。新的体现架构可以基于标准的“RESTfulAPI”方法来构建,这是在数据复制领域的一次新的飞跃。这彻底打破了在GoldenGate的管理、访问、使用上的限制,让GoldenGate可以有更广泛的应用场景。用户可以通过标准的API来控制和访问GoldenGate。下图是GoldenGate新的基于微服务的系统架构图。

从上图可以看出,GoldenGate新的微服务架构,去掉了传统体系架构中的一些组件,增加了一些新的组件,通过这些新的组件,GoldenGate获得了如下新的优势:
远程部署和管理
SSL支持
HTML5页面访问
支持多种网络同步协议 (WSS, WS, UDT, OGG)
实时分析监控
为了了解GoldenGate新的微服务架构体系,我们需要了解一下GoldenGate新的微服务架构的几个核心组件:
ServiceManager:它是一个运行在GoldenGate数据复制环境的每一个服务器上的监护进程,它可以有三种运行方式:
手动运行
做为后台服务进程自动运行
可以运行在数据库的集群环境(XAG)
当它运行的时候,它是我们连接GoldenGate环境的唯一入口点,当我们配置这个进程的时候,我们需要为它分配端口,通过ServiceManager的WEB访问端口,我们可以看到我们所有的GoldenGate的进程。
AdminServer:
它可以完全替换传统GoldenGate架构中的GGSCI,通过它我们可以为GoldenGate设置credential store、数据抽取进程、数据投递进程等。我们大部分的GoldenGate管理工作都是通过它来完成的。同时我们可以通过它下钻到GoldenGate运行的进程并监控它们的状态、查看参数文件、检查进程报告等。通过使用它让我们对GoldenGate的管理变得越来越简单。
下图是两者的主要区别对比:

DistributionServer:它是用来替换传统架构中的数据泵进程的。它可以完成除了数据转换外的所有数据泵的工作。它也给我们提供了数据复制的可视化的视图,让我们清楚地了解GoldenGate数据复制的流向。
ReceiverServer:这个进程用来替换传统架构中的Collector进程,它接收来自DistributionServer进程传输过来的数据并把它们写入到远端的队列文件中。通过进程运行的概览页我们可以清楚地看出数据从哪里来写入到哪里去。
Performance Metrics Server:这个进程为用户提供了一个实时监控GoldenGate运行的服务。但是当我们使用这个功能前,需要事先订购了Oracle Management Pack for GoldenGate组件。我们通过图形化和多种性能监控的API完成对GoldenGate的监控。
我们看到了GoldenGate新的微服务架构给我们带来的无限的惊喜,我们可以利用这些新的改变在更广泛的领域和环境来应用GoldenGate数据复制解决方案。相信我们在本地环境、在云端和混合云环境将看到更多的GoldenGate的应用案例。




