Common Database Middleware Summary

【1】360 Atlas

URL: https://github.com/Qihoo360/Atlas

        More active, Atlas is a platform section 360 Web infrastructure team development and maintenance of a data item interlayer MySQL protocol. It is based on mysql-proxy 0.8.2 version on, it is optimized, added some new features. Atlas 360 internal service running MySQL, read and write requests carried up of billions per day.

        Main functions:
        1. separate read and write
        2. From the library load balancing
        filter the IP 3.
        4. Among the list of the SQL statements
        5. Automatic table

 

【2】Mycat

Official website: http://www.mycat.io/

        Predecessor Cobar, open source, more active.

        Features:
comply with Mysql native protocol, cross-language, cross-database of generic middleware proxy.
Heart failure based on the automatic switching of separate read and write support, multiple supports MySQL from one pair of master and a master from multiple
connected data sources effective management, sub-libraries based on the data, rather than the pattern part tables.
NIO-based implementation, effective management of threads, high concurrency issues.
It supports multi-chip automatic routing of data with the polymerization, conventional polymerization support functions sum, count, max and the like.
Support 2 table join, even based on the multi-table join caltlet.
Supported by a global table, fragmentation strategy ER relations, enables efficient multi-table join queries.
It supports multi-tenant solution.
Support distributed transactions (weak xa)
supports global serial number, primary key to solve the problem of distributed generation.
Fragmentation rule rich, plug-in technology development, easy to expand.
Powerful web, command line monitoring.
As a front-end MySQL support common agent, the back-end JDBC way to support Oracle, DB2, SQL Server, mongodb , giant sequoias.
ZooKeeper cluster-based management, online upgrade, expansion, intelligent optimization, large data processing (2.0 Developer Edition).
        

[3] Cobar (not maintained)

        Cobar Alibaba (B2B) division develops distributed processing system for relational data, it may look like a traditional database, like to provide you with massive data services in a distributed environment.

        Cobar distributed mainly achieved by the table into different libraries:
        1. Support split into a plurality of parts by a horizontal table into separate libraries to achieve split-level table of
        2. The support different tables into different libraries and
        3. under most circumstances, the user will be a mixture of two or more ways.

        It should be emphasized that, Cobar will not support a table, for example, test table split into test_1, test_2, test_3 ..... in the same library, you must watch after the split into separate libraries to implement distributed.

        In the case where the user profile MySQL heartbeat, of Cobar can automatically connect to the rear end of sending the heartbeat MySQL, MySQL determined operating conditions, once the abnormal operation, preparation of Cobar can automatically switch to the working machine.

        But it is emphasized that:
        the main switch 1. Prepared Cobar two trigger a user to manually trigger a heartbeat Cobar statement is automatically triggered after the abnormality is detected. Then, when an abnormal heartbeat to the host, switching to the standby machine, if the host recovery, require users to manually cut the work back to the host, of Cobar does not automatically switch back to the host when the host restored, unless the heartbeat preparation machine also returns an exception.
        
        2. Cobar only checks MySQL standby abnormal, do not care about data synchronization between the primary, so the user needs before using Cobar standby configuration in the two-way synchronization MySQL, the details can refer to the MySQL Reference Manual.

        Secondly, we also need to pay attention to Cobar of functional constraint:
        1. does not support join, paging, sorting, child under cross-database query operation situation.
        2. SELECT statement executes is ignored, except for the transaction and character sets.
        3. Under the sub-library case, insert statement must include split fields column name.
        4. sub-library case, update statement can not update the value of the split field.
        5. SAVEPOINT operation is not supported.
        6. only supports MySQL data nodes.


【4】 TDDL

        No longer in use, the next generation is DDRS.
        
        Taobao, according to their operational characteristics developed TDDL (Taobao Distributed Data Layer nickname: big head) framework, mainly to solve the sub-library sub-table for data replication between heterogeneous database and application transparency, which is based on a jdbc datasource implemented centralized configuration, the main and backup, separate read and write, the dynamic database configuration functions.

        By deploying the client TDDL jar package, the user will be routed to the designated SQL database.

        Function:
Database standby and dynamic switching
with weights separate read and write
a single thread read retry
centralized data management source information, and dynamically changing
the release of the data source jboss stable
support MySQL database and Oracle
JDBC-based specification, it is easy to implement support for Extended JDBC specification data source
without Server, the presence Client, Jar form, direct application database
read and write times, concurrency control flow, dynamically changing
the log printing can be analyzed, the log flow control, dynamic change
    
        

【5】Heisenberg

        Integration Cobar, TDDL, does not currently active, written by Baidu individual employees.

        Function:
sub-library sub-table and the application from, the sub-library table as the use of a single database table as
reduce the number of DB is connected pressure
hot restart arranged
horizontally expansion
comply MySQL native protocol
no language restrictions, MySQLClient, C, Java like can be used
        Heisenberg server via management command to view, such as the number of connections, the thread pool, node, etc., and can be adjusted

[6] Other relatively small minority   

Oceanus

        Use less, 58 Oceanus is committed to creating a simple function, it can rely on, easy to use, easy to expand, easy to integrate solution, or even platform system. Embrace open source, all kinds of plug-in mechanism to provide integration with other open source projects, programming novice can get started in minutes, sub-library sub-table logic no longer tightly coupled with business, expansion standard mode, reducing unexpected error occurred datanode: Data source node. A data source name, link properties configuration, to achieve an alarm.

        The main concept:
the NameNode: cluster data source. A set of data source name, this set of data sources specified load mode, access mode, the weight
table: map. Sql parsing table matching the name of the hit tag name attribute value table, performs routing logic convention
bean: entity. Referenced by other tags, such entities must no-argument constructor
tracker: Buried monitoring. Calculations involving IO functions and control points are points, Buried a custom implementation class, time-consuming than expected when the function wherein the callback function executes to facilitate monitoring and optimization system
    

Vitess

        Compared with the whole tall, and development of Mycat2.0 similar. Google developed a database middleware, based on ZooKeeper cluster management, data processing by way of RPC, overall divided, server, command line, gui monitoring three parts.
        

OneProxy 

        Business costs.

        OneProxy distributed middleware, software civilians is completely self-developed distributed data access layer to help users quickly build support sub-library sub-table distributed database middleware on MySQL / PostgreSQL cluster also has a SQ L whitelist ( anti-SQL injection) and IP whitelist feature of SQL firewall software. Consistent with MySQL Proxy protocol reverse output mode, the application is very simple and transparent to use, allowing the user sub-library sub-table fear (Horizontal Partitioning) work extremely simple and controllable. Libevent mechanism to achieve, you can achieve a single instance of SQL forwarding capacity of 250,000, with a OneProxy node can bring the whole based on MySQL Cluster.

DRDS (recommended)

        Integration of cloud services, fees, Cobar, TDDL integration, business, choice.

        Ali distributed relational database service (Distribute Relational Database Service, abbreviated DRDS) is a split level, expanding smoothly volume reduction, separate read and write online distributed database services.

  Formerly Taobao TDDL, is the application of choice for nearly a thousand components, it has been stable service for more than seven years.

 

DBLE (love can be born, recommended)

Official website: https://opensource.actionsky.com/

Documentation: https://actiontech.github.io/dble-docs-cn/0.overview/0.0_overview.html

Guess you like

Origin www.cnblogs.com/gered/p/12101414.html