你的位置:首页 > 软件开发 > ASP.net > 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

发布时间:2016-09-02 17:00:04
目录索引  【无私分享:ASP.NET CORE 项目实战】目录索引 简介     MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787。我们今天主要介绍一下,在我们的Asp.net Core中如何 ...

 

目录索引 

 

【无私分享:get='_blank'>ASP.NET CORE 项目实战】目录索引

 

简介

 

  

  MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787。我们今天主要介绍一下,在我们的Asp.net Core中如何使用Mycat,这源于一个大神(Amamiya Yuuko)的分享,但是,这中间还是有少许的 坑 :

  首先,因为大神是比较忙的,而且主要分享关键技术,所以有些地方很简略,而往往这些简略的地方容易造成新手的困惑。

 

  其次,在尝试了N次失败后,我发现大神的代理程序是有问题的,具体是什么问题,我们待会详细解释,经过修改之后的代理程序,可以正常运行。

  因此,我觉得很有必要写这篇文章,一步一步搭建、测试、运行。

 

 

什么是MyCat?

 

   【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

  

  从定义和分类来看,它是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。

 

  MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度。

 

  此外,开发者可以根据不同的需求将表分配不同的数据节点,比如Table A存放在关系型数据库中(如MySQL),而Table B可能更适合NoSQL(如MongoDB),在MyCAT中开发者只需要简单配置,即可让MyCAT完成这一系列操作的路由。

 

   关于更多MyCat,大家可以参照官网:http://www.mycat.org.cn/

 

 

MyCat的优势

  

 

  • 基于阿里巴巴的开源项目Cobar,具备良好的稳定性、可靠性、优良的结构和优良的性能,拥有许多的项目案例。站在巨人的肩膀上,MyCAT将走的更远。
  • 广泛借鉴最好的开源项目和创新的理念,让这些融入MyCAT的基因,使MyCAT成为领先其他电商等类似的开源项目,甚至超过了一些企业级应用。
  • MyCAT技术团队的参与者都经历过至少五多年的项目经验,团队中包括一些高级软件工程师、架构师、DBA。由精英们组成的MyCAT技术团队将确保产品质量。
  • MyCAT是完全独立的社区,不依附于任何企业,遵循着完全开放、免费、开源的原则。它不像一些开源项目,重要的功能封闭在其商业产品,并使开源项目像一个装饰。
  • 支持超过60种的数据库作为数据节点,如MySQL、SQL Server、Oracle、MongoDB、DB2等

 

 

 

MyCat与ADO.NET

 

  由于MyCAT与MySQL协议有些许差异,开发者可能不能够直接使用Oracle官方提供的Mysql.Data(ADO层)来与MyCAT直接连接,因此有大神专门为.NET开发者设计了针对MyCAT优化过的ADO层驱动,即 Pomelo.Data.MyCat,开发者通过使用MyCatConnection、MyCatCommand类可以实现对MyCAT的连接与查询。

 

 

MyCat 与 Entity Framework Core

 

  由于MyCAT的协议与MySQL有所差异,导致了无论是Java平台下的Hibernate还是.NET下的Entity Framework都无法使用MySQL的provider直接来操作MyCAT。这点在EF中的Migrations以及Code First上表现的尤为明显,此外开发者不仅需要手动建库,还需要配置分片规则等,操作繁琐。

因此我们使用第三方专门为MyCAT量身打造的Entity Framework Core Provider,即 Pomelo.EntityFrameworkCore.MyCat。

 

 安装Java8

 

  MyCat 需要 java cdk的支持,安装方法网上很多很详细,这里我们就不罗列了。

 

下载MyCat Server

 

  废话不多说,我们来开始我们的MyCat之旅:

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。