最近根据多个应用使用阿里云DRDS(
https://www.aliyun.com/product/drds)的情况,我这边做了一个比较入门的攻略,因为文档很多,全部看完不现实,但是用好这个产品有几个点还是需要非常清楚,否则可能会采坑。
一切的开始,需要了解这玩意到底是干什么的,推荐看下这个产品的概述
https://help.aliyun.com/document_detail/29659.html和产品的基本原理
https://help.aliyun.com/document_detail/29679.html
确认这个产品能够解决你的核心问题,接下来一个很重要的点是怎么用好这个产品,数据库产品我个人认为都是有坑的,只是坑大坑小,以及能否从坑里面爬出来的问题。
无论怎么滴,简单上手下看看,快速入门系列文档是比较合适的
https://help.aliyun.com/document_detail/50067.html
当你按步骤连上DRDS后,做了一些操作之后,其实你可能并不清楚到底发生了什么,如果这个时候马上去按照你的理解上业务表测试,可能就埋了坑,DRDS这个产品的表结构设计和单机数据库有一个很重要的区别在于:怎么拆。所以这个时候我推荐大家看下
https://help.aliyun.com/document_detail/51309.html这个文档以及
https://yq.aliyun.com/video/play/981这个视频,这个时间我认为花得是值得的。
当你了解这个产品最重要的点之后,接下来实际上是一个初始化测试环境,进行数据导入或者造数据的过程,你对资源一定很关心,怎么配比DRDS和RDS, 按照个人经验,DRDS可以从最低配规格开始,因为我理解这个产品本身没有状态,升配如同应用扩机器一样会比较方便,RDS的话测试环境1或者2个都行,生产可以参考
https://help.aliyun.com/document_detail/51307.html这个文档,但是有一点可能文档中没有提,需要考虑数据容量的问题,因为单个RDS目前最高2T,其实并不是说硬件问题,而在于到时你要做个备份、做个只读实例、做个容灾恢复,时间是以天来计的,所以个人建议,除非你要怼在一个RDS实例上天荒地老,否则如果程序能够改成拆分的,单个RDS数据量不超过1T为好。举个非常简单的例子,你有10T数据,我个人建议使用 10-15个RDS 解决问题,而不是5-6个。
另外最最重要的一点是,如果你想以后避免一些生产上的麻烦,建议选择8c16g(包含)以上的RDS节点,用一堆屌丝实例堆出来的分布式数据库,稳定性远不如规格比较大的实例。
当你把环境规划好,在做功能开发的过程中,建议能够看下这个产品的大部分文档,并且推荐看下
https://bbs.aliyun.com/read/313990.html这个帖子,乍一看吓一跳,但是能够把坑告诉你的产品是不多的,并且了解这些内容,对团队开发遇到问题的解决速度会有帮助。
功能开发完毕,很多应用可能会直接上线,我个人建议补充下性能测试,特别是核心场景。目前市面上提供的分布式数据库,即使功能兼容性再好,不做性能测试,是非常不靠谱的,很可能导致发布失败,因为有些物理原理上的问题是跨不过去的(按照目前大部分产品的架构和硬件而言),所以这个时候你会导入一些数据到DRDS中,可以参考
https://help.aliyun.com/document_detail/52131.html。
实际生产使用之前,你应该还会非常关心告警问题,虽然这个产品提供了监控告警,但是目前个人认为监控和告警指标还不够丰富,只有cpu, 并且监控指标聚合粒度比较大(5分钟),介绍可以看看
https://help.aliyun.com/document_detail/52009.html,但是很有意思的是,他提供了秒级统计的指令让我们可以有所发挥,参见这个指令的说明
https://help.aliyun.com/document_detail/52139.html,我为此还写过一篇文章使用grafana来做这个产品的秒级监控,参见文档
http://bucketli.iteye.com/blog/2397401,总体来说是有效的,里面包括 ERROR_PER_SECOND, FULLGCCOUNT,CPU都是值得关注的指标,ERROR_PER_SECOND有数值的话,你的应用是不正常的(排除VIOLATION_PER_SECOND),FULLGCCOUNT 不断在增张的话(几秒钟变化一次),那很可能SQL出了问题,CPU一直处于80%以上时,一个可能是存在大量数据导入导出或者数据处理,另外一个可能是应用流量过大等等,后续我专门写一篇文章对这些指标进行一下解析,这个指令整体来说是非常不错的。
当你经过性能测试或者真正上线功能之后,你会发现实际上DRDS适用的场景可能覆盖不了你的所有场景,从云栖大会来看,这个产品比较适合前台落数据的业务(当然如果后面能够把全局二级索引搞定那这类业务就能解决得更加好了),后台业务可能会碰到一些问题。所以你会需要把数据同步到其他数据库(包括单机数据库),去做一些报表分析之类的业务,这边推荐下云上数据集成工具(CDP,开源产品叫datax),参见他们对于DRDS使用的文档
https://github.com/alibaba/DataX/blob/master/drdsreader/doc/drdsreader.md 和
https://github.com/alibaba/DataX/blob/master/drdswriter/doc/drdswriter.md ,前者是从DRDS中抽取数据,后者是写入数据到DRDS. 不过这个工具没有增量比较蛋疼,因为DRDS底下基于RDS,所以实际上可以开多个binlog同步任务进行数据同步,这边还是推荐云上的
https://www.aliyun.com/product/dts 产品,当然如果你不想付钱,想自己折腾下,也可以使用
https://github.com/alibaba/canal 产品。对于数据导入导出,以及同步,个人认为都做得不够好,什么时候能够出一个通杀的产品呢?值得期待。
整体使用指南就介绍到这里,如果对DRDS产品你有一次比较成功的使用,我相信还是会比较爽的,至少个人认为如此。
分享到:
相关推荐
**阿里云专有云企业版 V3.7.1 分布式关系型数据库服务 DRDS 开发指南**是针对阿里云DRDS(Distributed Relational Database Service)的产品文档,主要面向开发者,旨在帮助用户理解和使用分布式关系型数据库服务。...
**阿里云专有云企业版 V3.7.0 分布式关系型数据库服务 DRDS 开发指南** 阿里云的分布式关系型数据库服务 (DRDS) 是一款为企业级应用设计的高效、稳定、灵活的数据库解决方案。DRDS旨在解决单机数据库在高并发、大...
8. **免责声明**:DRDS开发指南仅供用户参考,阿里云不保证其内容的绝对准确性和完整性。因使用或信赖指南内容而造成的任何损失,阿里云不承担法律责任。用户应自行承担使用风险,并遵循最佳实践进行操作。 DRDS的...
**开发指南中的关键概念和技术:** 1. **OpenAPI**:DRDS提供了开放的应用程序编程接口(API),允许开发者通过调用API来管理DRDS实例、执行SQL操作、监控数据库状态等。 2. **SQL路由**:DRDS根据预设的拆分规则...
在开发指南中,主要涉及以下几个核心知识点: 1. **分库分表**:DRDS的核心功能之一,通过将单一的大表横向切分成多个小表,分布到不同的数据库实例上,实现了数据的水平扩展,解决了单表数据量过大导致的性能瓶颈...
8. **OpenAPI**:DRDS提供了开放的应用程序接口(API),允许开发者通过编程方式管理DRDS实例,如创建、删除、扩容、查询等操作,实现了自动化运维和集成到现有工作流中。 9. **安全控制**:DRDS遵循严格的权限管理...
DRDS将传统的单机数据库扩展到分布式环境,提供了水平拆分、读写分离、分布式事务等核心功能,适用于高并发、大数据量的互联网应用。 **分布式数据库的核心概念:** 1. **水平拆分**:DRDS支持基于哈希、范围的分...
10. **API与SDK**:DRDS提供了丰富的API接口和各种开发语言的SDK,方便开发者集成到自己的应用系统中。 在使用DRDS时,用户应遵循文档中的法律声明,包括但不限于通过官方渠道获取和使用文档,保守阿里云的保密信息...
然后,用户可以创建数据库和表,并将应用程序的数据库连接指向DRDS服务。在开发阶段,应遵循DRDS的最佳实践,比如合理设计分片键,避免热点问题,以及编写适应分布式环境的SQL语句。 3. **运维与管理** - **监控与...
为了帮助开发者更好地使用 DRDS,阿里云提供了 DRDS 最佳实践指南,旨在帮助开发者更好地设计、开发和部署分布式关系型数据库应用程序。 分布式关系型数据库 DRDS 最佳实践的核心思想是:在设计分布式关系型数据库...
除了上述内容,文档还可能包含DRDS的安装部署、操作指南、API接口、最佳实践、故障排查等内容,帮助用户全面理解和使用DRDS服务。 总结,阿里云的DRDS是应对大规模数据库挑战的关键工具,通过其分布式特性,可以...
总之,阿里云专有云企业版V3.9.0的分布式关系型数据库服务DRDS,是为企业级应用设计的高性能、高可用的分布式数据库解决方案,旨在帮助企业轻松应对大数据时代的挑战,提升数据库的处理能力和运维效率。用户在使用...
6. **操作指南**:指南中包含了详细的GTS操作步骤,如事务的创建、提交、回滚,以及如何与其他阿里云服务集成,如RDS、DRDS等。 7. **API与SDK**:GTS提供了丰富的API接口和开发工具包,开发者可以利用这些接口在...
Python是一种广泛使用的高级编程语言,尤其在Web开发、数据分析、人工智能等领域有着广泛应用。它的语法简洁明了,易于学习,且拥有丰富的第三方库支持,如Numpy、Pandas和Scikit-learn等。在云计算领域,Python库如...
**DMS (Data Management Service)** 是一款一站式数据管理和开发平台,它提供了数据集成、加工、可视化和价值挖掘等功能。DMS支持多种数据源,包括MySQL、DRDS、PolarDB、ADB、DLA、PostgreSQL、SQL Server、Oracle...