欢迎访问深圳敏捷云计算科技有限公司!

甲骨文云 OCI 部署高可用性CockroachDB集群:构建弹性的分布式数据库解决方案

2024-04-17 原创文章

CockroachDB是一个建立在事务性和一致性键值存储上的分布式SQL数据库。

架构

此参考架构展示了在甲骨文云基础设施计算实例上部署的典型三节点CockroachDB。使用公共负载均衡器来分配工作负载到这三个节点。

以下图表说明了这一参考架构。

地区

甲骨文云基础设施地区是包含一个或多个数据中心的地理区域,这些数据中心称为可用性域。地区彼此独立,相隔甚远(跨越国家甚至大洲)。

可用性域

可用性域是地区内独立的、独立的数据中心。每个可用性域的物理资源与其他可用性域的资源相互隔离,提供故障容忍能力。可用性域不共享基础设施,如电力或冷却,或内部可用性域网络。因此,一个可用性域的故障不太可能影响该地区的其他可用性域。

故障域

故障域是可用性域内的硬件和基础设施分组。每个可用性域有三个故障域,拥有独立的电源和硬件。当您在多个故障域中分配资源时,您的应用程序可以容忍物理服务器故障、系统维护和故障域内的电力故障。

虚拟云网络(VCN)和子网

VCN是您在甲骨文云基础设施地区中设置的可定制、软件定义的网络。与传统数据中心网络一样,VCN使您完全控制网络环境。VCN可以有多个不重叠的CIDR块,您可以在创建VCN后更改它们。您可以将VCN分割成子网,这些子网可以被限定在一个地区或可用性域。每个子网包括一系列连续地址,不与VCN中的其他子网重叠。您可以在创建后更改子网的大小。子网可以是公共的或私有的。

本架构使用一个公共子网来托管公共负载均衡器和运行CockroachDB的三个计算实例。

负载均衡器

甲骨文云基础设施负载均衡服务提供从单一入口点到您VCN中多个服务器的自动流量分配。本架构有两个监听器,一个用于TCP端口8080,另一个用于TCP端口26257。负载均衡器还有两个后端集,分别对应这两个监听器。

安全列表

对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的来源、目的地和类型。

本架构使用针对TCP端口8080和26257的入站规则,以便客户端可以访问HTTP和CockroachDB监听器流量。

推荐方案

您的需求可能与此处描述的架构不同。以下建议可作为起点。

计算形状

本架构使用带有VM.Standard.E3.Flex计算形状的甲骨文Linux 7.9操作系统镜像。根据您的应用需求,如果需要更多内存、核心或网络带宽,您可以选择不同的形状。

VCN

创建VCN时,根据您计划附加到VCN子网中的资源数量,确定所需CIDR块的数量及其大小。使用标准私有IP地址空间内的CIDR块。

选择不与任何其他网络重叠的CIDR块(在甲骨文云基础设施、您的本地数据中心或其他云提供商中),以便您打算建立私有连接。

创建VCN后,您可以更改、添加和移除其CIDR块。

设计子网时,考虑您的流量流动和安全要求。将特定层或角色内的所有资源附加到同一子网,可作为安全边界。

使用区域子网。

负载均衡器带宽

在创建负载均衡器时,您可以选择提供固定带宽的预定义形状,或指定一个自定义(灵活)形状,您设置带宽范围并让服务根据流量模式自动扩展带宽。无论采用哪种方法,您都可以在创建负载均衡器后随时更改形状。

考虑因素

可扩展性

实现法定人数所需的最小节点数为三个,因此本架构部署了三个节点。根据您的应用程序的性能或高可用性要求,您可能需要更多节点。

您可以通过增加更多计算节点并将它们包含在负载均衡器后端集中,来水平扩展数据库集群。

您可以通过更改每个计算节点的VM形状,来垂直扩展数据库集群。使用更高核心数量的形状还会增加分配给计算实例的内存和网络带宽。

可用性

故障域在单个可用性域内提供最佳弹性。在本架构中,您可以在拥有多个可用性域的地区部署执行相同任务的计算实例,而不是只在一个可用性域中部署应用程序。这种设计通过引入冗余消除了单点故障。架构部署后,使用负载均衡器的公共IP地址连接到CockroachDB,并使用内置的SQL客户端。

成本

根据您的数据库所需的核心、内存和网络带宽选择虚拟机(VM)形状。您可以从一核形状开始,如果您需要更高的数据库节点性能、内存或网络带宽,您可以稍后更改VM形状。

                 

部署

在甲骨文云基础设施资源管理器中,这一参考架构的Terraform代码作为样例堆栈提供。您也可以从GitHub下载代码,根据具体需求进行定制。

使用甲骨文云基础设施资源管理器中的样例堆栈进行部署:

a. 点击,若您尚未登录,请输入租户和用户凭证。

b. 选择您想部署堆栈的区域。

c. 按照屏幕提示和指示创建堆栈。

d. 创建堆栈后,点击Terraform操作,并选择计划。

e. 等待工作完成,并审查计划。

f. 如需进行任何更改,请返回到堆栈详情页面,点击编辑堆栈,并进行必要更改。然后,再次运行计划操作。

g. 如果不需要进一步更改,请返回到堆栈详情页面,点击Terraform操作,并选择应用。

使用GitHub中的Terraform代码进行部署:

a. 访问GitHub。

b. 克隆或下载仓库到您的本地电脑。

c. 按照README文件中的指示操作。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门