首页 > 编程知识 正文

开源数据库中间件,数据库中间件哪家强

时间:2023-05-05 05:22:41 阅读:45091 作者:1188

MyCat Mycat是一个开源分布式数据库系统,其核心功能是分表库。 也就是说,年轻橘子被水平分割成多个小表,并存储在后端MySQL或其他数据库中。 MyCat是用目前最流行的java语言编写的数据库中间件,是实现MySQL协议的服务器。 前端用户可以将其视为通过MySQL客户端工具和命令行访问的数据库代理,其后端可以通过MySQL本机协议与多个MySQL服务器通信。 也可以使用JDBC协议与大多数主流数据库服务器进行通信。 将核心功能是分库分表和读写分离(即年轻橘子级别)划分为n个小表,并将其存储在后端MySQL服务器或其他数据库中。

MyCat对我们Java程序员来说是近似等于MySQL的数据库服务器,你是可以用连接MySQL的方式去连接Mycat。 (除端口差异外,默认MyCat端口为8066,而不是MySQL的3306。

二、MyCat支持的数据库OracleMySQLmongoDBSQLServer三、MyCat概念说明3.1MyCat的切片策略

分片是指在某些特定条件下,我们将存储在同一数据库中的数据分散存储在多个数据库(主机)中,从而达到平衡单个设备负载的效果。 MyCat支持两种拆分模式。 一个是用不同表(或模式)分割为不同的数据库)上,该分割也可以称为数据的垂直(纵向)分割,另一个是基于表中的数据的逻辑关系,在某个条件下将同一表中的数据分割为多个数据库) 该分割也可以说是数据的水平)横向)分割。对逻辑库(schema)数据进行切片处理后,从原来的一个库分割为多个切片数据库,所有的切片数据库集群都是完整的数据库列表Mycat在操作时使用逻辑库来表示这个完整的数据库群集,从而简化了整个群集的操作。

既然有逻辑表(table)逻辑库,就有逻辑表。 在分布式数据库中,逻辑表对应于用于读写数据的表。 逻辑表可以在拆分数据后分布在一个或多个分片库中,也可以不进行数据拆分、不分片,只由一个表组成。

瓷砖表:

原始的非常大的数据表,需要分割为多个数据库的表。 这样,每个切片都有一部分数据,所有的点

电影构成了完整的数据。 总之,这是需要单片化的表。

非瓷砖表:

一个数据库中的所有表都不是很大。 有些桌子可以不切片。 非切片相对于切片台

这是不需要数据分割的表。

分片节点(dataNode)数据分割后,一个年轻橘子被分成不同的分片数据库,每个表分片所在的数据库就是分片节点(dataNode )。

节点主机(dataHost)数据分割后,每个片节点不一定独占一台机器。 同一台机器上可以有多个片数据库。 这样,具有一个或多个片节点的计算机就是节点主机。 为了避免单节点主机的同时数限制,将读写压力高的片节点尽量均等地配置在不同的节点主机dataHost中。

分片规则前谈到了数据分割,年轻的橘子分割成几个分片表后,就需要一定的规则rule。 这样,按照某个业务规则将数据分割为某个区块的规则是区块规则,选择适合于数据分割的区块规则非常重要,大大避免了后续的数据处理的困难。

Mycat与Sharding-jdbc的区别Sharding-jdbc被定位为轻量级Java框架,是在Java的JDBC层提供的附加服务。 使用客户端直接连接数据库以jar包的形式提供服务。 不需要额外的部署或依赖。 可以理解为扩展版的JDBC驱动程序,与JDBC和各种ORM框架完全兼容。

因为主要介绍mycat,所以很少介绍Sharding-jdbc。 主要介绍mycat和Sharding-jdbc的区别

mycat是中间件的第三方APP应用程序,sharding-jdbc在jar包使用mycat时不需要修改代码,而在使用sharding-jdbc时需要修改代码。 sharding-jdbc在读写分离APP应用程序下,sharding-jdbc在同一事务中先写后读。 为了避免因主不匹配而导致的读不匹配,没有自动读写操作的其他事务的读取始终路由到从库中,但mycat在打开事务时表示该事务处于只读状态

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。