Pomelo.EntityFrameworkCore.MyCat is an Entity Framework Core provider and optimized for MyCat (An open source MySQL cluster proxy which based on Cobar)
MyCAT is an Open-Source software, a large database cluster oriented to enterprises. MyCAT is an enforced database which is a replacement for MySQL and supports transaction and ACID. Regarded as MySQL cluster of enterprise database, MyCAT can take the place of expensive Oracle cluster. MyCAT is also a new type of database, which seems like a SQL Server integrated with the memory cache technology, NoSQL technology and HDFS big data. And as a new modern enterprise database product, MyCAT is combined with the traditional database and new distributed data warehouse. In a word, MyCAT is a fresh new middleware of database.
Mycat’s target is to smoothly migrate the current stand-alone database and applications to cloud side with low cost and to solve the bottleneck problem caused by the rapid growth of data storage and business scale.
- Based on Alibaba's open-source project Cobar, whose stability, reliability, excellent architecture and performance, as well as many mature use-cases make MyCAT have a good starting. Standing on the shoulders of giants, MyCAT feels confident enough to go farther.
- Extensively drawing on the best open-source projects and innovative ideas, which are integrated into the Mycat’s gene, make MyCAT be ahead of the other current similar open-source projects, even beyond some commercial products.
- MyCAT behind a strong technical team whose participants are experienced more than five years including some senior software engineer, architect, DBA, etc. Excellent technical team to ensure the product quality of Mycat.
- MyCAT does not rely on any commercial company. It’s unlike some open-source projects whose important features is enclosed in its commercial products and making open-source projects like a decoration.
- Supports individual databases like MySQL, SQL Server, Oracle, MongoDB, DB2...
① Install Java8, MySQL 5.7, .NET Core SDK on your server
# add-apt-repository ppa:webupd8team/java
# apt-get update
# apt-get install oracle-java8-installer
# wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
# dpkg -i mysql-apt-config_0.6.0-1_all.deb
# apt-get update
# apt-get install mysql-community-server
# sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
# apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
# apt-get update
# apt-get install dotnet-dev-1.0.0-preview2-003121
Ensure utf8
is the default charset. You can replace the my.cnf
file by using this.
② Download Pomelo.EntityFrameworkCore.MyCat.Proxy and MyCat Server
③ Configure the config.json
which in Pomelo.EntityFrameworkCore.MyCat.Proxy root path, set the MyCatRootPath
.
④ Start the proxy by execute nohup dotnet Pomelo.EntityFrameworkCore.MyCat.Proxy.dll
⑤ Create .NET project. Add Pomelo.EntityFrameworkCore.MyCat 1.0.0-*
into your project.
⑥ Configure your DbContext, declare the distributed mysql node address.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseMyCat("server=192.168.0.129;database=blog;uid=test;pwd=test")
.UseDataNode("192.168.0.129", "blog_1", "root", "123456")
.UseDataNode("192.168.0.129", "blog_2", "root", "123456")
.UseDataNode("192.168.0.129", "blog_3", "root", "123456")
.UseDataNode("192.168.0.129", "blog_4", "root", "123456");
}
⑦ Create models and using the dotnet ef migrations add Init
and dotnet ef database update
to init your database.
⑧ Most of functions which provided in Entity Framework Core were supported. You are able to use .Where(), .Count(), .Sum() ... with Pomelo.EntityFrameworkCore.MyCat
.
One of the easiest ways to contribute is to participate in discussions and discuss issues. You can also contribute by submitting pull requests with code changes.