关于MyCat的研究与整理
2018-06-12 19:09:12 0 举报
MyCat调研
作者其他创作
大纲/内容
需要解决的问题:
可能面临的问题和挑战:
@guangzhou
高可用性
采购模块
RESTful API
dn4
任务调度
MyCat 应用场景
dn1
Orders
中间件 MiddleWare
相关资料:
业务伙伴
○ 分库分表需要解决的问题
select * from orders o inner join user u where o.userid=u.userid
○ Mycat 不支持的SQL语句总结
○ Mycat官方文档
用户界面 User Interface
领域模型层 Domain
支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储
报表问题
MyCat
User
MyCat 客户端和服务器端协议基于MySQL,因此程序面向的逻辑库必须使用MySQL协议进行通信;对于一些复杂的SQL语句,支持性不是很好或者存在bug;ShareJoin目前不在一个实例的表,只支持两张表join
定时任务1
定时任务n
DevOps
原生的SQL需要重写;不支持既有的ORM框架;需要重构基础设施层;
Dapper ORM
配置中心
日志
示例:ERP系统实施方案
销售模块
双机热备任务系统
初衷
数据库 DataBase
商品模块
报表模块
审批模块
dn2
数据仓储
库存模块
负载均衡
dn3
财务模块
领域层服务
未来目标:
MongoDB
MyCat 处理流程:1.配置分片物理节点和逻辑节点的映射关系;2.用户发送过来的SQL语句,首先对SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等;3.然后将此SQL发往后端的真实数据库,并将返回的结果做适当的处理;4.最终再将结果返回给用户。
Oracle DB2
逻辑库
读写分离
● 随着业务数据量越来越大,达到千万级的数据量,就需要对数据进行垂直切分和水平切分,分库分表已然是趋势;● 解决单库大数据,高并发的性能瓶颈,提高系统的稳定性和负载能力;● 构建企业级的分布式数据库,并提供集中监视、集中管理和系统日志;● 提供数据挖掘、大数据分析的能力;● 为构建满足高性能、可用性、伸缩性、扩展性和安全性的大型网站架构,做一定的技术储备;
文件处理
@beijing
Oracle DBn
Oracle DB1
@shanghai
邮件处理
多租户
@basic
基础设施 Infrastructure
领域模型
...
MyCat 扩展
MyCat 原理:
分库分表
Web MVC
IOC/AOP 支持
JOIN 查询
解决 Oracle DBLink 问题
定时任务2
应用层 Application
事务支持
主从切换
物理库
0 条评论
下一页