公众号merlinsea
- 什么是ShardingSphere?
- 官网:https://shardingsphere.apache.org/document/current/en/overview/
- Apache ShardingSphere 是一个由一套分布式数据库解决方案组成的开源生态系统,包括 JDBC、Proxy & Sidecar (Planning) 3 个独立产品。它们都提供了数据横向扩展、分布式事务和分布式治理的功能,适用于Java同构、异构语言、云原生等多种场景。
- Apache ShardingSphere旨在合理利用分布式系统中已有数据库的计算和存储能力,而不是设计一个全新的数据库。目标是最小化或消除 底层数据库碎片化带来的挑战。
- 什么是Sharding jdbc?
- ShardingSphere-JDBC 将自己定义为一个轻量级的【Java 框架】,在 Java JDBC 层提供额外的服务,仅支持java语言。
- 客户端直接连接数据库,以jar的形式提供服务,不需要额外的部署和依赖。
- 它可以被认为是一个增强的JDBC驱动,完全兼容JDBC和各种ORM框架。
- sharding jdbc采用去中心化的架构,即没有一个中间代理集中统一管理连接数据库的连接资源。
- 特点:
- 适用于任何基于JDBC的ORM框架,如JPA、Hibernate、Mybatis、Spring JDBC Template或直接使用JDBC;
- 支持任何第三方数据库连接池,如DBCP、C3P0、BoneCP、HikariCP;
- 支持任何类型的 JDBC 标准数据库:MySQL、PostgreSQL、Oracle、SQLServer 和任何 JDBC 适配的数据库。
- 什么是sharding proxy?
- 数据库代理端,提供封装了数据库⼆进制协议的服务端版本,⽤于完成对异构语⾔的⽀持。
- 向应⽤程序完全透明,可直接当做 MySQL/PostgreSQL。
- 它可以使⽤任何兼容 MySQL/PostgreSQL 协议的访问客户端(如:MySQL Command Client, MySQL Workbench,Navicat 等)操作数据。
- 什么是sharding sidecar?【目前仍在规划中】
- ShardingSphere-Sidecar 将自己定义为 Kubernetes 环境的云原生数据库代理,以 Sidecar 的形式负责所有的数据库访问。它提供 了一个与数据库交互的网格层,我们称之为数据库网格Database Mesh.
- 数据库网格强调如何将分布式数据访问应用程序与数据库连接起来,以交互为中心,有效组织杂乱的应用程序与数据库之间的交互。
- 使用 Database Mesh 访问数据库的应用程序和数据库将形成一个大的网格系统,只需将它们相应地放在正确的位置即可。它们都由网格层控制。
- 三大组件的对比
- 异构语言、性能、是否中心化 是我们开发选型的核心的关注点
下面介绍一下我们的算法训练营,目前算法已经整理到了50多题了,如果大家对算法刷题有困难的可以找我帮忙,我带你手把手刷题。
我后期还会推出数据结构java版本,下面我给出我的目录大纲,大概今年九月份到十月份推出~