The architecture of Abase database management system is introduced as follows:
1. Overview
Abase is an open source distributed database middleware, which realizes automatic expansion and contraction, failover and query routing of MySQL database.
2. Functional Architecture
- Separation of Read and Write: Split into Master and Slave Services
- Automatic Scaling: Complete Scaling According to Load Level
- Load Balancing: Routing Based on Query Analysis
- Failover: Quickly Switch to a New Master Database to Provide Services
- Monitoring Platform: SQL Monitoring and Performance Monitoring
3. Technical architecture
- Proxy agent node: realize connection access and query forwarding
- Syncer node: synchronize the binlog of the main library to the slave library
- Heartbeat module: cluster heartbeat detection
- SQL parsing module: parse SQL to determine routing
4. Deployment architecture
- Proxy agent layer deployment
- MySQL master-slave cluster deployment
- add Syncer and Heartbeat modules
5. Security architecture
- Support SSL/TLS data transmission encryption
- Filter unsafe statements through Proxy
- Support IP whitelist to restrict access
6. Data architecture
- MySQL master-slave replication log binlog
- Metadata metadata storage routing rules
- heartbeat and status data storage
The advantages and disadvantages of Abase and benchmarking analysis are as follows:
advantage:
- Support seamless horizontal expansion of MySQL database
- Realize read-write separation and load balancing of MySQL
- Simplify MySQL high availability and failover schemes
- Ensure strong consistency of master-slave data
- Simple deployment and use
- Little impact on performance , OVERHEAD low
shortcoming:
- Only for MySQL databases, not
universal - Relatively single function, only as database middleware
- Unable to handle cross-data center scenarios
- Complex SQL may cause parsing error routing
- Only static routing configuration is supported, less flexible
Benchmarking products:
- CDB: Aliyun's database proxy service, but not open source
- MyCAT: similar in function, but Abase configuration is simple and better for deployment
- ProxySQL: better in performance, but does not support automatic scaling
- Atlas: MongoDB's middleware, different Database field
- MaxScale: rich in functions, but complex, not open source
Generally speaking, as a MySQL middleware, Abase has the advantages of performance and ease of use. It is suitable for scenarios where MySQL expansion and high availability are easy to achieve.