Apache ShardingSphere(文中简称ShardingSphere)是一个新兴的分布式数据库开源生态,是基于可插拔和云原生原则设计的。
本书首先将概述数据库管理系统(database management system,DBMS)在当今的生产环境中面临的主要挑战,并简要地介绍ShardingSphere的核心概念。然后,本书将通过真实的案例介绍分布式数据库解决方案、弹性伸缩、DistSQL、全链路监控、SQL授权、用户身份认证和数据库网关,让你对ShardingSphere的架构组件、如何在既有基础设施中添加并配置这些组件以管理数据和应用等方面有全面认识。
接下来,本书将介绍ShardingSphere客户端ShardingSphere-JDBC和ShardingSphere-Proxy,以及如何根据需要结合或单独使用它们。接着,你将学习如何定制可插拔架构以定义个性化的用户策略,还有如何无缝地管理多个配置。最后,你将熟悉如何在各种场景中进行功能和性能测试。
阅读完本书,你将能够构建并部署自定义的ShardingSphere,消除数据管理基础设施中出现的重要痛点。
本书是为负责开发分布式数据库解决方案,并想探索ShardingSphere功能的数据库开发人员编写的;寻求更强大、更灵活、成本效益更高的分布式数据库解决方案的数据库管理员(database administrator,DBA)也将受惠于本书。要阅读本书,必须对数据库、关系数据库、结构化查询语言(structured query language,SQL)、云计算和数据管理有基本了解。
第1章介绍DBMS在当今的生产环境中面临的主要挑战、数据库开发人员角色的演变情况以及DBMS的机会和未来发展方向。本章还简要地介绍ShardingSphere生态、这个项目的演变过程以及软件解决方案需要满足的需求,为后续章节打下坚实的基础。
第2章从专业角度介绍ShardingSphere的架构,还有基于Database Plus的架构和插件平台。
第3章概述ShardingSphere在各行各业的企业环境中的应用,还有对分布式数据库来说必不可少的ShardingSphere特性。
第4章拓展有关ShardingSphere在企业环境中的应用方面的知识,专注于让你能够监视并改善性能以及提高安全性的ShardingSphere特性。
第5章介绍主要的ShardingSphere客户端以及它们之间的差别,还有如何根据需要结合或单独使用它们。
第6章介绍ShardingSphere-Proxy、如何直接将其用作MySQL和PostgreSQL服务器以及如何通过各种终端访问它。
第7章介绍客户端ShardingSphere-JDBC,包括它如何连接到数据库、它的第三方数据库连接池以及如何安装它。
第8章演示如何根据具体情况定制可插拔架构以充分发挥系统的作用,并简要地介绍云原生原则。
第9章介绍内置的基准和性能测试系统及其用法——从测试准备到报告分析。
第10章介绍测试常见的应用场景,包括分布式数据库、数据库安全、全链路监控和数据库网关。
第11章展示各种场景的最佳使用案例,还有一系列实例,如分布式数据库解决方案,数据库安全、全链路监控和数据库网关解决方案。
第12章拓展第11章介绍的知识,阐释如何将理论应用于实践。
附录A包含ShardingSphere文档使用指南、GitHub仓库中的示例项目、有关ShardingSphere源代码和许可的更详细的信息,以及加入ShardingSphere开源社区的方法。
在本书中,为充分发挥系统和ShardingSphere的作用,需要一些简单的工具。
这里列出了可能需要用到的软件(如下表所示),具体需要哪些取决于你对哪些特性或ShardingSphere客户端感兴趣。
在操作系统方面,可使用任何主流操作系统——Windows、macOS或Linux。本书所有的代码示例都在这 3 种操作系统中进行了测试,它们应该也适用于未来的 ShardingSphere版本。
如果在安装过程中遇到麻烦,且因环境独特而无法在本书找到解决办法,可通过ShardingSphere的GitHub仓库的Issues or Discussions部分向社区求助。
如果使用的是本书的数字版本,建议自己动手输入代码或配套的GitHub仓库下载代码,这有助于避免复制并粘贴代码可能导致的错误。
ShardingSphere采用的许可方式为Apache软件基金会的Apache License 2.0,有关这种许可方式的详情,请参阅Apache官网的Apache License 2.0文档。
本书示例代码的GitHub仓库地址为https://github.com/PacktPublishing/A-Definitive-Guide-to-ShardingSphere。如果我们更新了这些代码,将相应地更新这个GitHub仓库。
要了解更多的活动或用例,可与ShardingSphere社区联系;如果有意尝试,也可成为开源开发者。