Apache ShardingSphere는 오픈 소스 분산 데이터베이스 미들웨어 솔루션 세트로 구성된 생태계입니다. JDBC, Proxy 및 Sidecar(예정)로 구성되어 있으며, 서로 독립적이지만 함께 배포 및 사용할 수 있습니다. 모두 표준화된 데이터 샤딩, 분산 트랜잭션 및 데이터베이스 관리 기능을 제공하며 Java 동형, 이종 언어, 클라우드 네이티브 등과 같은 다양한 애플리케이션 시나리오에 적용될 수 있습니다.
Apache ShardingSphere는 새로운 관계형 데이터베이스를 구현하는 대신 분산 시나리오에서 관계형 데이터베이스의 컴퓨팅 및 저장 기능을 완전하고 합리적으로 활용하는 것을 목표로 하는 관계형 데이터베이스 미들웨어로 포지셔닝됩니다. 변하지 않는 것에 초점을 맞춰 사물의 본질을 포착합니다. 관계형 데이터베이스는 오늘날에도 여전히 거대한 시장을 점유하고 있으며 각 회사의 핵심 비즈니스의 초석이며 앞으로도 흔들리지 않을 것입니다. 이 단계에서는 전복보다는 원래 기반을 기반으로 한 증분에 더 중점을 두고 있습니다.
Apache ShardingSphere 5.x는 플러그형 아키텍처에 초점을 맞추기 시작했으며 프로젝트의 기능 구성 요소는 플러그형 방식으로 유연하게 확장될 수 있습니다. 현재 데이터 샤딩, 읽기-쓰기 분리, 다중 데이터 복사, 데이터 암호화, 섀도우 데이터베이스 스트레스 테스트 등의 기능과 SQL 및 MySQL, PostgreSQL, SQLServer, Oracle과 같은 프로토콜 지원이 모두 통합되어 있습니다. 플러그인을 통해 프로젝트를 진행하세요. 개발자는 빌딩 블록을 사용하는 것처럼 자신만의 고유한 시스템을 맞춤 설정할 수 있습니다. Apache ShardingSphere는 현재 시스템 확장 지점으로 수십 개의 SPI를 제공하고 있으며 계속 추가되고 있습니다.
샤딩스피어-JDBC
경량 Java 프레임워크로 포지셔닝되어 Java의 JDBC 계층에서 추가 서비스를 제공합니다. 클라이언트를 사용하여 데이터베이스에 직접 연결하고, 추가 배포 및 종속성 없이 jar 패키지 형태로 서비스를 제공합니다. JDBC 드라이버의 향상된 버전으로 이해될 수 있으며 JDBC 및 다양한 ORM 프레임워크와 완벽하게 호환됩니다.
JPA, Hibernate, Mybatis, Spring JDBC 템플릿과 같은 모든 JDBC 기반 ORM 프레임워크에 적용하거나 JDBC를 직접 사용할 수 있습니다.
DBCP, C3P0, BoneCP, Druid, HikariCP 등과 같은 타사 데이터베이스 연결 풀을 지원합니다.
JDBC 사양을 구현하는 모든 데이터베이스를 지원하며 현재 MySQL, Oracle, SQLServer, PostgreSQL 및 SQL92 표준을 따르는 모든 데이터베이스를 지원합니다.
샤딩스피어-프록시
투명한 데이터베이스 에이전트로 포지셔닝되어 이기종 언어를 지원하기 위해 데이터베이스 바이너리 프로토콜을 캡슐화하는 서버를 제공합니다. 현재 MySQL, PostgreSQL이 제공되고 있으며 MySQL/PostgreSQL 프로토콜과 호환되는 모든 액세스 클라이언트(예: MySQL Command Client, MySQL Workbench, Navicat 등)를 사용하여 데이터를 조작할 수 있어 DBA에게 더욱 친숙합니다.
이는 애플리케이션에 완전히 투명하며 MySQL/PostgreSQL 서버로 직접 사용할 수 있습니다.
MySQL/PostgreSQL 프로토콜과 호환되는 모든 클라이언트에 적용 가능합니다.
샤딩스피어-사이드카(TODO)
Kubernetes용 클라우드 네이티브 데이터베이스 프록시로 배치되어 사이드카 형태로 데이터베이스에 대한 모든 액세스를 프록시합니다. 중앙이 없고 침입이 없는 솔루션은 데이터베이스, 즉 데이터베이스 메쉬(데이터베이스 그리드라고도 함)와 상호 작용하는 참여 레이어를 제공합니다.
Database Mesh는 분산 데이터 액세스 애플리케이션과 데이터베이스를 유기적으로 연결하는 방법에 중점을 두고 복잡한 애플리케이션과 데이터베이스 간의 상호 작용을 효과적으로 분류하는 데 중점을 둡니다. 데이터베이스 메시를 사용하면 데이터베이스에 접근하는 애플리케이션과 데이터베이스는 결국 거대한 그리드 시스템을 형성하게 됩니다. 애플리케이션과 데이터베이스는 모두 그리드 시스템에 등록되기만 하면 됩니다.
하이브리드 아키텍처
ShardingSphere-JDBC는 분산형 아키텍처를 채택하고 Java로 개발된 고성능 경량 OLTP 애플리케이션에 적합합니다. ShardingSphere-Proxy는 정적 입력 및 이기종 언어 지원을 제공하며 OLAP 애플리케이션 및 샤딩된 데이터베이스 장면의 관리 및 운영에 적합합니다.
Apache ShardingSphere는 여러 액세스 터미널로 구성된 생태계입니다. ShardingSphere-JDBC와 ShardingSphere-Proxy를 혼합하고 동일한 등록 센터를 사용하여 샤딩 전략을 균일하게 구성함으로써 다양한 시나리오에 적합한 애플리케이션 시스템을 유연하게 구축할 수 있어 설계자가 현재 비즈니스 아키텍처에 가장 적합한 시스템을 보다 자유롭게 조정할 수 있습니다.
1. 데이터 단편화
하위 라이브러리 및 하위 테이블
읽기 및 쓰기 분리
샤딩 전략 사용자 정의
비중앙화 분산 기본 키
2. 분산 거래
표준화된 거래 인터페이스
XA 강력하게 일관된 트랜잭션
유연한 업무
3. 데이터베이스 관리
분산 거버넌스
탄력적 확장
관찰 가능성(분산 추적, 측정항목)
데이터 암호화 및 복호화
섀도우 게이지 압력 테스트