GoldenGate 12.3微服务架构与传统架构的区别
随着Oracle GoldenGate 12c(12.3.0.1.0)的发布,引入了可用于复制业务数据的新架构。 多年来,这种架构有着不同的称谓,Oracle终于在最后GA发布的版本中,以“Microservices”的名义确认新架构的名称。Microservices架构有很多好处,这些好处应该让您暂停探索Oracle GoldenGate 12c的新功能。在我们进入微服务架构之前,让我们先看一下经典架构。在下图中,您将看到一个非常标准的传统Oracle GoldenGate架构实现。
在这种架构中,通过GoldenGate服务命令界面(GGSCI)来访问Oracle GoldenGate环境。登录GGSCI后,您可以交互并管理关联的进程,即管理进程,抽取(捕获),传输和复制(应用、投递)进程。数据接收进程(collector)隐含在目标系统上,但通过GGSCI看不到。在此体系结构中,数据通过TCP / IP在传输进程和数据接收进程之间将本地队列文件复制到远端,并对整个复制过程进行监控。
这种架构的缺点是,为了管理各个复制节点,您必须物理登录到运行Oracle GoldenGate的服务器。 但在真实的生产环境中,许多组织对直接访问服务器有许多限制,并经常引起争论谁是真正的Oracle GoldenGate所有者。
尽管Oracle GoldenGate的经典体系结构已经成为近20年来的复制基础,但Oracle希望利用这一基石改变我们(行业)当前复制数据的方式。这导致了更灵活和可扩展的微服务架构。 您可能已经猜到,“微服务”是“RESTful API”的归属单词。通过使用RESTful API,Oracle在复制产品上取得了巨大的飞跃。 该架构解决了OGG在管理和访问方面的局限性,同时保留了Oracle GoldenGate复制的基础功能。以下图片是一个简单的Oracle GoldenGate Microservices Architecture的视图,供参考。
正如您将看到的,有一些传统的Oracle GoldenGate组件被丢弃了,但抽取(捕获),队列文件和复制(应用)进程仍然保留。 由于这是一个全新的复制架构,具有许多好处,包括:
l 远程管理
l SSL支持
l 每个服务/服务器采用HTML 5网页展示
l 支持更多的复制协议(WSS,WS,UDT,OGG)
l 实时性能指标展示
为了了解Microservices架构,您必须了解架构中每个服务器(或服务)提供的内容。 所以,让我们先花一点时间从ServiceManager服务开始。
Service Manager
ServiceManager是一个复制环境中管理多个复制节点的看门狗(守护)进程。 理想情况下,该进程应该只启动一个实例。此过程可以配置为以下3种方式之一运行:
l 手动
l 作为一个守护进程
l 与XAG集成
当ServiceManager运行时,此进程将成为Oracle GoldenGate MA环境的主要入口。 在配置过程中,将要求您为每个要运行的MicroService服务分配端口。ServiceManager将是您分配的第一个端口。从ServiceManager的HTML5页面,您将可以看到所有的部署节点和关联的服务器及对应的服务进程。
AdminServer
AdminServer将会代替GGSCI(不用担心,在MA架构中仍然有命令行工具adminclient)和经典架构中的Manager的服务。从这里,您将能够设置您的凭据存储,抽取和复制进程。大多数Oracle GoldenGate管理员都会花时间在这里。另外,从这个服务,您可以钻取正在运行的进程并查看当前状态,统计信息,参数文件和报告文件。使您的管理工作更简单。
DistributionServer
DistributionServer是Data Pump Extract的替代品。该服务与数据传输进程功能完全相同,但转换除外。除了提供所有相同的功能,您还可以直观地显示您的队列文件从哪里读取和发送到哪里,在这个服务的概述页面即可看得很清楚。当您浏览DistributionServer的详细信息时,您可以看到关于正在读取和写入的队列文件的统计信息,并调整分发路径中的TCP / IP配置参数。
ReceiverServer
ReceiverServer是Collector进程的替代者。ReceiverServer的全部工作是接收来自DistributionServer传输过来的数据,并向ReceiverServer可见的目录写入队列文件。从这个服务的概述页面,您可以清楚地看到信息来自哪里以及它写的内容。就像DistributionServer一样,如果您查看此服务的详细信息,您可以看到很多有用的信息。
最后,是微服务架构中最有趣的服务,即:
Peformance Metrics Server(性能指标服务器)
终于,Oracle在GoldenGate中提供了实时性能监控服务。在您开始使用新的性能监视服务之前,您必须先具备GoldenGate提供的Oracle Managment Pack许可证,然后才能使用GUI或相关的度量标准API。如果你有这个需求,那么你可以在GUI和API中检索和使用这么多性能指标信息。这个功能还是值得一试的。
综上所述,对于需要使用数据复制的用户,这个新的MA架构带来了新的亮点。在MA架构中,有许多可以自定义的地方,它将改变我们如何在云端,混合环境中复制数据。
GoldenGate 12.3微服务架构与传统架构的区别的更多相关文章
- Oracle GoldenGate 12.3微服务架构指北
Microservices Architecture introduction Microservices Architecture is a method or approach to develo ...
- 微服务理论之二:面向微服务架构与传统架构、SOA对比,以及云化对比
一.Monolith 网上对Microservice进行介绍的文章常常以Monolith作为开头,我也不会例外.原因是,知道了Monolith的不便之后才能更容易地理解Microservice架构模式 ...
- 王院生:Apache APISIX 微服务网关极致性能架构解析
2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 杭州站活动,Apache APISIX PPMC 成员王院生做 ...
- [转帖]从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?
从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑? 2019-10-08 10:26:28 阿里云云栖社区 阅读数 54 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...
- 微服务框架Dubbo与Springcloud的区别
微服务框架Dubbo与Springcloud的区别 微服务主要的优势如下: 1.降低复杂度 将原来偶合在一起的复杂业务拆分为单个服务,规避了原本复杂度无止境的积累.每一个微服务专注于单一功能,并通过定 ...
- Spring Cloud微服务下的权限架构调研
随着微服务架构的流行,系统架构调整,项目权限系统模块开发提上日程,需要对权限架构进行设计以及技术选型.所以这段时间看了下相关的资料,做了几个对比选择. 一.架构图 初步设想的架构如下,结构很简单:eu ...
- 从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?
作者 | 易立 阿里云资深技术专家 导读:从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的.与时俱进的技术架构.本篇文章从企业分布式应用架构层面介绍 ...
- Anno微服务引擎与传统应用相融合
1.Anno是什么? Anno是一个微服务引擎.在此之前我们通过 Viper项目对Anno有一个基本的认识,并且Viper也受到的很多朋友的喜欢,截止发稿前Viper在GitHub收获了300多个星. ...
随机推荐
- HP1020打印机“传递给系统调用的数据区域太小” 如何处理?
如果电脑上曾经安装过 HP LaserJet 激光打印机的驱动程序,重新安装驱动程序之前,需要完全卸载以前安装的驱动程序,否则可能会出现无法找到设备或者安装不上驱动程序的现象. 安装网站下载的即插即用 ...
- DataFrame WordCount
测试数据: ** * 使用DataFrame实现WordCount */ object DataFrameWordCount { def main(args: Array[String]): Unit ...
- [py]Python使用UUID库生成唯一ID(uuid模块)
https://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html uuid介绍 UUID是128位的全局唯一标识符,通常由32字节的字符串表 ...
- Lua获取当前时间
更多好的文章就在 blog.haoitsoft.com,请大家多多支持! local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbrevi ...
- Java 基础 面向对象和抽象类
面向对象变量 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变 ...
- PHP实现装饰器
参考:https://www.cnblogs.com/onephp/p/6108940.html ●装饰器模式(Decorator),可以动态地添加修改类的功能 ●一个类提供了一项功能,如果要在修改并 ...
- Python才排第8名!2018增速最快TOP 10编程语言盘点
在技术前沿的硅谷,开发者们不仅要学习多种热门的编程语言,还要时时盯着新的编程语言的崛起,生怕自己掉队. 作为世界最大开源软件社区,Github每年都会发布年度Octoverse报告,向大家展示年度最流 ...
- mac-禅道环境
开机不能访问,换成IP地址就好了
- MJExtension代码解释
Runtime 是什么? objective-C会把函数调用的转换为消息发送,objc_MsgSend(receiver, msg), 注意,recevier指的是消息的接受者.那么self, sup ...
- python class 2
//test.py 1 class Employee: 2 'all employee' 3 empCount = 0 4 def __init__(s ...