이 기사에서는 읽기-쓰기 분리의 작동 원리, 읽기-쓰기 분리 구현 방법, 일반적으로 사용되는 미들웨어 등 읽기-쓰기 분리의 기본 원칙과 관련된 문제를 주로 정리한 mysql에 대한 관련 지식을 제공합니다. 읽기-쓰기 분리 아래 내용을 살펴보시고 모든 분들께 도움이 되었으면 좋겠습니다.
추천 학습: mysql 비디오 튜토리얼
일부 대규모 웹 사이트 비즈니스 시나리오에서는 단일 데이터베이스 서버가 제공하는 동시성의 양이 더 이상 비즈니스 요구를 충족할 수 없습니다. 이를 충족시키기 위해서는 일반적으로 마스터-슬레이브 동기화를 통해 데이터를 동기화하고, 이를 기반으로 읽기-쓰기 분리를 통해 데이터베이스의 동시성 및 로드 용량을 향상시킨다.
일반적으로 비즈니스 시나리오에서 데이터베이스에 대한 쿼리 작업은 추가, 삭제, 수정보다 훨씬 높으며 읽기 작업은 데이터베이스에 미치는 영향이 적습니다. 따라서 일반적으로 하나의 데이터베이스 서버를 데이터 추가, 삭제, 수정 작업을 주로 담당하는 마스터 서버로 설정하고, 3~4개의 데이터베이스 서버를 데이터 쿼리 작업을 주로 담당하는 슬레이브 서버로 구성합니다. 데이터베이스 슬레이브 서버는 데이터 일관성을 유지하기 위해 데이터베이스 마스터 서버의 데이터를 동기화합니다.
읽기-쓰기 분리 수준에 따라 읽기-쓰기 분리는 일반적으로 애플리케이션 계층과 미들웨어 계층을 통해 두 가지 방식으로 구현됩니다.
애플리케이션 계층을 통한 구현은 서로 다른 MySQL 메인 라이브러리와 슬레이브 라이브러리를 각각 가리키도록 웹 페이지 내부에 데이터 쿼리 언어와 데이터 작업 언어를 구현하는 것을 의미합니다. 애플리케이션 계층을 통해 구현된 MySQL 읽기-쓰기 분리 다이어그램은 다음과 같습니다.
이것의 장점은 배포의 어려움을 줄이고 배포 및 설치를 바로 사용할 수 있다는 것이며, 단점은 더 좋습니다. 아키텍처가 확장되면 코드를 수정해야 하며 이는 구현하기 어렵습니다. 자동 데이터베이스 샤딩 및 테이블 샤딩과 같은 고급 작업은 일부 대규모 애플리케이션 시나리오에 적합하지 않습니다.
미들웨어 계층을 통한 구현은 애플리케이션 계층에서 모든 SQL 문을 미들웨어 장치를 일률적으로 가리키며, 미들웨어 장치는 서로 다른 SQL 문을 서로 다른 데이터베이스 서버를 가리켜 작업을 수행하는 것을 의미합니다. 미들웨어 계층을 통해 읽기-쓰기 분리를 구현하는 다이어그램은 다음과 같습니다.
이에 대한 장점은 아키텍처 설계가 더 유연하고 비즈니스 코드에 미치는 영향이 적으며 이식성이 좋고 고급 제어가 가능하다는 것입니다. , 이 아키텍처는 전문적인 작업이 필요합니다. 유지 보수 담당자가 아키텍처를 유지 관리합니다.
읽기와 쓰기 분리를 위해 일반적으로 사용되는 미들웨어 프로그램은 다음과 같습니다.
1.cobar
알리바바 B2B에서 개발한 관계형 분산 시스템은 초기 미들웨어입니다. 개발자가 떠났기 때문에 유지하고 있습니다.
2. MyCAT
기술 애호가들은 cobar를 기반으로 2차 개발을 수행하고 cobar의 일부 문제를 해결했으며 몇 가지 새로운 기능을 추가했습니다. 현재 MyCAT 커뮤니티는 매우 활발하며 많은 회사에서 MyCAT을 사용하고 있습니다.
3. OneProxy
Oneproxy는 Alipay 팀이 개발한 상용 유료 미들웨어이며 높은 동시성 시나리오에서 매우 안정적입니다.
4. Vitess
이 미들웨어는 복잡한 아키텍처를 가지고 있으며 Vitess를 사용하려면 제공되는 API 인터페이스를 사용해야 합니다.
5. Kingshard
는 360 팀에서 개발했으며 하위 데이터베이스와 테이블을 지원하지만 높은 동시성 조건에서는 안정성이 평균입니다.
6, MaxScale 및 MySQL Route
둘 다 공식 MySQL 미들웨어입니다. Maxscale은 Mariadb에서 개발했으며, MySQL Route는 현재 Oracle이 MySQL 데이터베이스용으로 출시한 미들웨어입니다.
추천 학습: mysql 비디오 튜토리얼
위 내용은 MySQL 읽기 및 쓰기 분리의 기본 원칙에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!