dbpack
dbpack copied to clipboard
A db proxy for distributed transaction, read write splitting and sharding! Support any language! It can be deployed as a sidecar in a pod.
DBPack
DBPack is a database proxy pack aims to provide a distributed transaction solution of high performance and has no invasion into business logic. It can be deployed as a sidecar in a pod, which can shield complex basic logic, so that business development does not need to rely on a specific SDK, simplifying the development process and improving development efficiency. It supports any programming language and is easy to use.
Feature
- support MYSQL protocol.
- event driven distributed transaction solution inspired by kubernetes.
- support read write splitting and custom SQL routing via Hint.
- support audit log and SQL tracing.
- sharding: support query on sharded table, support
order by
andlimit
. - sharding: support
insert
,delete
,update
on sharded tables. - can be deployed as a sidecar,support any programming language.
- more features on the road.
Metrics
using prometheus metrics, default metric server runs at :18888
Getting Started
Requirements
- Go >= 1.17
- MYSQL >= 5.7+
Contribution Guide
- Contribution Guide
Architecture
- Listener: responsible for parsing the SQL protocol.
- Executor: responsible for forwarding SQL requests to the backend physical DB.
- Filter: responsible for metrics statistics, SQL interception, encryption and decryption of sensitive information, etc.
- ConnectionFilter: process the intercepted SQL on the connection.
WeChat group
To enter the WeChat discussion group, please scan the QR code below and reply with the code "join the group".
![image-20220427091848831](https://cectc.github.io/dbpack-doc/images/image-20220427091848831.png)
License
DBPack is licensed under the Apache License, Version 2.0.