分布式数据库中间件使用心得
关键字:高可用、分布式、多可用区
最近公司新项目使用了华为云的DDM分布式数据库中间件服务,通过一段的时间的使用感觉还不错。近段时间发现有许多小伙伴也准备去使用这个服务,所以为大家分享一下使用 创建DDM服务的经验,帮助小伙伴们少走弯路。
首先在使用创建DDM实例的时候小伙伴们会遇到的第一个问题应该是如何选择DDM实例的规格,选小了满足不了业务量,选大了浪费多余的性能。 那么应该如何解决呢?DDM服务公布了不同规格DDM实例的性能压测数据,如下图,我们可以参考DDM的性能压测数据,再通过对公司业务发展规模的评估,选择相对应的DDM实例规格。
混合读写OLTP场景 | |||
sql类型 | DDM规格 | 并发数 | QPS |
混合sql | 8C16G | 256 | 49474 |
16C32G | 256 | 87302 | |
32C64G | 256 | 152671 | |
64C128G | 512 | 317431 |
简单查询场景 | |||
sql类型 | DDM规格 | 并发数 | QPS |
单select | 8C16G | 256 | 108003 |
16C32G | 256 | 205228 | |
32C64G | 256 | 425585 | |
64C128G | 512 | 796614 |
选择规格之后,在创建DDM实例的界面,我们会看到有可用分区这个选项。可能有部分小伙伴不理解可用分区是什么意思,在这里也一起解释一下。
不同的可用分区在物理上分布在不同的地点,可以简单地理解为:在同一区下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离(如下图所示)。针对可用区的选择上,主要从两个方面考虑:
(1)如果您需要提高应用的高可用性,建议您将云服务器创建在不同的可用区内。这样我们使用的DDM实例虚拟机的物理资源,就分布在了多个可用分区上,当其中有可用分区的物理资源出现故障时,只要有一个可用分区还正常运行我们的DDM实例就依然可以使用。
(2)如果您需要较低的网络延迟,建议您将云服务器创建在相同的可用区内。
还有一点需要注意的是,在创建DDM实例时选择的VPC与安全组必须要与你的ECS服务器使用的一致,否则会导致网络不通如下图所示(华为云出于安全上的考虑,VPC之间默认网络不互通,安全组不一致有可能导致网络访问被拦截),在华为云创建了多个VPC和安全组的同学需要注意一下。
DDM实例的使用需要关联RDS实例,因此在创建完DDM实例之后,还需要创建RDS实例才能够使用DDM实例。下面我们继续介绍RDS实例创建的注意事项。
首先需要注意的是,存储类型一定要选择超高IO类型,如下图所示,超高IO类型的最大吞吐量达到350MB/S,性能大大提高,并且价格只比普通IO贵20多块钱超值。数据库版本,优先选择最高MySQL5.7+,新版本会修复旧版本存在的漏洞,并且性能上会有所提高。
实例类型(如下图所示)如果仅仅是学生小伙伴自己玩玩,或者用于开发测试环境,则可选择单机实例即可,省点钱。但是如果是使用于公司的业务,则建议选择主备实例,预防万一,保证业务的稳定运行,提高可靠性,就相当于买个保险了,多花点钱图个安心,完全值得。
RDS实例规格可以适当选择小点,以便创建多个RDS,比如:如果需要一个2核8GB的RDS,可以换成创建两个1核4GB的RDS。这样的好处是,在使用DDM实例时,可以挂载多个RDS,提高使用DDM实例的性能。需要注意的是,创建RDS实例时,选择的VPC与安全组,也与创建DDM实例时选择的一样,必须与你的ECS服务器使用的一致。
最后在创建完RDS实例之后,如果对性能有更高要求的小伙伴,可以在RDS实例管理界面,创建只读实例,如下图所示,创建的只读实例的规格与主RDS实例的规格一致即可。创建了只读实例后,可以在DDM服务中,设置访问主RDS实例与只读RDS实例的负载均衡策略,进一步提升DDM实例的性能。
好了,今天的分享就先到这里,后面还会继续分享DDM实例创建逻辑库、逻辑表、负载均衡策略等相关经验,小伙伴们如果有什么疑问可以随时与我交流分享吗,谢谢大家!
欢迎扫码查看更多精彩:
- 点赞
- 收藏
- 关注作者
评论(0)