问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mycat中间件在实际开发中经常用到吗?

发布网友 发布时间:2022-04-07 23:20

我来回答

2个回答

懂视网 时间:2022-04-08 03:41

Cobar是阿里巴巴研发的关系型数据的分布式处理系统,是提供关系型数据库(MySQL)分布式服务的中间件,该产品成功替代了原先基于Oracle的数据存储方案,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明。

  • 产品在阿里巴巴稳定运行3年以上。
  • 接管了3000+个MySQL数据库的schema。
  • 集群日处理在线SQL请求50亿次以上。
  • 集群日处理在线数据流量TB级别以上。
  • Cobar的核心功能:

    技术分享

    分布式:

    Cobar的分布式主要是通过将表放入不同的库来实现:

  • Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分
  • Cobar也支持将不同的表放入不同的库
  • 多数情况下,用户会将以上两种方式混合使用
  • 要强调的是,Cobar不支持将一张表,例如test表拆分成test_1, test_2, test_3…..放在同一个库中,必须将拆分后的表分别放入不同的库来实现分布式。

    HA:

    在用户配置了MySQL心跳的情况下,Cobar可以自动向后端连接的MySQL发送心跳,判断MySQL运行状况,一旦运行出现异常,Cobar可以自动切换到备机工作。需要强调的是:

  • Cobar的主备切换有两种触发方式,一种是用户手动触发,一种是Cobar的心跳语句检测到异常后自动触发。那么,当心跳检测到主机异常,切换到备机,如果主机恢复了,需要用户手动切回主机工作,Cobar不会在主机恢复时自动切换回主机,除非备机的心跳也返回异常。
  • Cobar只检查MySQL主备异常,不关心主备之间的数据同步,因此用户需要在使用Cobar之前在MySQL主备上配置双向同步,详情可以参阅MySQL参考手册。
  • Cobar的功能约束

  • 不支持跨库情况下的join、分页、排序、子查询操作。
  • SET语句执行会被忽略,事务和字符集设置除外。
  • 分库情况下,insert语句必须包含拆分字段列名。
  • 分库情况下,update语句不能更新拆分字段的值。
  • 不支持SAVEPOINT操作。
  • 暂时只支持MySQL数据节点。
  • 使用JDBC时,不支持rewriteBatchedStatements=true参数设置(默认为false)。
  • 使用JDBC时,不支持useServerPrepStmts=true参数设置(默认为false)。
  • 使用JDBC时,BLOB, BINARY, VARBINARY字段不能使用setBlob()或setBinaryStream()方法设置参数。
  • Cobar逻辑层次图

    技术分享

  • dataSource:数据源,表示一个具体的数据库连接,与物理存在的数据库schema一一对应。
  • dataNode:数据节点,由主、备数据源,数据源的HA以及连接池共同组成,可以将一个dataNode理解为一个分库。
  • table:表,包括拆分表(如tb1,tb2)和非拆分表。
  • tableRule:路由规则,用于判断SQL语句被路由到具体哪些datanode执行。
  • schema:cobar可以定义包含拆分表的schema(如schema1),也可以定义无拆分表的schema(如schema2)。
  • Cobar支持的数据库结构(schema)的层次关系具有较强的灵活性,用户可以将表自由放置不同的datanode,也可将不同的datasource放置在同一MySQL实例上。在实际应用中,需要通过配置文件(schema.xml)来定义我们需要的数据库服务器和表的分布策略。

    Cobar的实现原理

    Cobar的前、后端模块都实现了MySQL协议;当接受到SQL请求时,会依次进行解释(SQL Parser)和路由(SQL Router)工作,然后使用SQL Executor去后端模块获取数据集(后端模块还负责心跳检测功能);如果数据集来自多个数据源,Cobar则需要把数据集进行组合(Result Merge),最后返回响应。

    技术分享

    Cobar采用了主流的Reactor设计模式来处理请求,并使用NIO进行底层的数据交换,这大大提升系统的负载能力。其中,NIOAcceptor用于处理前端请求,NIOConnector则用于管理后端的连接,NIOProcessor用于管理多线程事件处理,NIOReactor则用于完成底层的事件驱动机制,就是看起来和Mina和Netty的网络模型比较相似。

    技术分享

    参考文档:https://github.com/alibaba/cobar

    转自:http://www.biaodianfu.com/cobar.html

    Cobar_基于MySQL的分布式数据库服务中间件

    标签:

    热心网友 时间:2022-04-08 00:49

      前身是阿里的cobar,MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。 目前虽然传统关系数据库存在一些列的先天弊端,但NoSQL数据库又将其替代,但是如果传统数据库易于扩展和分拆就可以极大的避免单机单库在数据增删改查方面的缺陷。MyCat就是为了解决数据库的分拆和扩展而生的开源分布式数据库系统。其最终的目标就是低成本地将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    你好。本人最近想入手个 本本 知道你是高手望给点高见 3K以内。 惠普(hp)hp431(qg643pa) 与联想(lenovo)g460al-ith(h)该买哪一... 惠普4核1G独立显卡2G-4G内存的笔记本电脑有哪些型号的比较好?价位是多... hp 431-qg597怎么样?惠普质量真很差吗?它的商务本怎么样 hp431 qg597无线上网卡插在那里? 惠普HP431(QG643PA)笔记本经常死机自动重启 陆金所 德众金融理财可靠吗? 平安为什么建陆金所 陆金所有什么风险吗 100分问题:请问汕头市区哪里有卖“节节风”的中草要。 前段时间在路上看见一辆车,带着BEIJING的标,这是什么品牌的车啊? BElJlNG一X7手动汽车怎么样? 有些电脑主板中会有一块纽扣电池,为什么? 什么叫电脑主板上的钮扣电池 买房网签后可以抵押贷款吗 网签合同可以做抵押贷款吗 三星s6adge+9280配置 二手房网签备案后,还能够抵押贷款吗 二手房网签后能贷款吗 三星S6 Edge +手机的CPU(处理器):四核2.1GHz 四核1.5GHz相当于骁龙多少 临沂市社保什么时候交 山东郯城县县长叫什么 贫困户还有必要叫临沂宝吗 临沂保免赔额2万是什么意思 如何停掉69元临沂保 罗庄区城市投资公司董事长宋连宗简历- 问一问 临沂市兰山区财金文化旅游发展有限公司怎么样? 临沂市罗庄区财金投资有限公司怎么样? 临沂市兰山区财金投资集团有限公司怎么样? 临沂市财金投资集团有限公司怎么样? BElJlNG一X7手动汽车怎么样?自动挡有吗 你好,请问2020款的BElJlNG_x 7怎么样? beljlng合资车吗? BEⅰGⅰNG是什么牌子的车? 招商银行Visa信用卡添加不了apple pay?只有银联信用卡才能添加吗? 求一本耽美小说太久了,名字忘记了 apple pay 能添加visa卡吗 招商银行booking visa支持apple pay吗 求答:我的anz visa 卡为什么不能绑apple pay 国内银行的visa美元卡能用apple pay吗 求冷僻一些的或者是奇怪的耽美文分类。 apple pay支持单一visa或万事达卡么,没有银联标示的! 求将军受的文…… 民生银行支持apple pay吗 文荒啊,求推荐帝王攻将军受的强强耽美文,文笔别太烂啊,☆一定要帝王攻将军受的文,Q_Q拜托啊! VISA单标卡没法 Apple Pay吗 求耽美文 将军受,其他都可以,但过程无虐结局he,只要书名 Apple pay能绑VISA卡吗? Apple Pay添加不了信用卡怎么办 耽美生子将军受