Mysql 읽 기와 쓰기 분리 만 료 상용 솔 루 션
읽 기와 쓰기 분리의 주요 목 표 는 메 인 라 이브 러 리 의 압력 을 분담 하고 클 라 이언 트 가 백 엔 드 데이터 베 이 스 를 선택 하여 조회 하 는 것 이다.또 하나의 구 조 는 MYSQL 과 클 라 이언 트 사이 에 중간 프 록 시 계층 proxy 가 있 고 클 라 이언 트 의 연결 proxy 이 며 proxy 가 요청 유형 과 문맥 에 따라 요청 한 배포 경 로 를 결정 하 는 것 이다.
프로젝트 1:주 라 이브 러 리 프로젝트 강제 실행
검색 요청 을 두 가지 로 나 눕 니 다.
메 인 라 이브 러 리 가 업 데 이 트 된 후에 라 이브 러 리 에서 읽 기 전에 sleep 을 하 십시오.select sleep(1)명령 을 실행 한 것 과 같 습 니 다.이 방안 의 가설 은 대부분의 경우 메 인 준비 가 1 초 안에 지연 되 고 sleep 을 하면 최신 데 이 터 를 얻 을 수 있 습 니 다.
판매자 가 상품 을 발표 하 는 것 을 전체 63925 로 하고 상품 이 발표 되면 Ajax 로 클 라 이언 트 가 입력 한 내용 을'새로운 상품'으로 페이지 에 표시 합 니 다.데이터 베 이 스 를 검색 하 는 것 이 아 닙 니 다.이렇게 하면 판매 자 는 이 디 스 플레이 를 통 해 제품 이 이미 발표 되 었 음 을 확인 할 수 있다.판매자 가 다시 페이지 를 새로 고치 고 상품 을 조회 할 때 사실은 시간 이 지나 면 sleep 의 목적 을 달성 하고 기한 이 지난 문 제 를 해결 할 수 있다.
방안 3:주 준비 지연 방안 판단:
첫 번 째 방법:먼저 show slave status 결 과 를 사용 하여 63977℃의 secondsbehind_master 매개 변수 값 은 분량 의 주 준비 지연 시간의 길 이 를 가늠 할 수 있 습 니 다.이 매개 변수 값 이 0 인지 여 부 를 판단 하고 0 이 아니라면 이 매개 변수 가 0 으로 변 할 때 까지 기 다 려 야 요청 을 수행 할 수 있 습 니 다.
두 번 째 방법:대비 위치 점 확보 주 준비 지연 없 음.
세 번 째 방법:GTID(전역 사물 ID)를 비교 하여 주 준비 지연 없 음 확보
프로젝트 4:등 주 라 이브 러 리 위치 방안
select master_pos_wait(file, pos[, timeout]);
이 명령 은 라 이브 러 리 에서 실 행 됩 니 다.매개 변수 file 과 pos 는 메 인 라 이브 러 리 의 파일 이름과 위 치 를 말 합 니 다.timeout 은 이 함수 가 최대 N 초 를 기다 리 고 있 음 을 표시 합 니 다.그림:먼저 직진 trx 1 을 하고 검색 요청 의 논 리 를 수행 합 니 다.정확 한 데 이 터 를 찾 을 수 있 도록 저 희 는 사용 할 수 있 습 니 다.
이 논리
1.trx 1 사물 업데이트 가 완료 되면 바로 실행 show master status 를 통 해 현재 주 라 이브 러 리 에서 실행 중인 File 과 Position 을 얻 을 수 있 습 니 다.
2.라 이브 러 리 에서 검색 어 를 선택 하 십시오.
3.라 이브 러 리 에서 select masterpos_wait(File, Position, 1);
4.반환 값 이>=0 의 정수 라면 이 라 이브 러 리 에서 검색 어 는 63750 입 니 다.
5.그렇지 않 으 면 메 인 라 이브 러 리 에서 검색 어 를 찾 습 니 다.
이것 은 63977 입 니 다.이 select 조 회 는 라 이브 러 리 에서 최대 1 초 를 기다린다 고 가정 합 니 다.그럼,1 초 안에 masterpos_돌아 오 기 를 기다리다
0 보다 큰 정수 로 라 이브 러 리 에서 행동 하 는 이 조회 결 과 는 반드시 trx 1 의 데 이 터 를 포함 하도록 확보한다.
5.메 인 라 이브 러 리 에서 검색 어 는 63750℃이 고 이런 방안 에서 자주 사용 하 는 퇴화 체제 이다.라 이브 러 리 에서 지연 시간 을 제어 할 수 없 기 때문에 없 을 수 없습니다.
대기 제한 이 있 기 때문에 대기 시간 이 초과 되면 포기 하고 메 인 라 이브 러 리 에 가서 찾 아야 합 니 다.만 료 되 지 않도록 설정 한 요구 에 따라 두 가지 선택 만 있 습 니 다.하 나 는 시간 초과 포기 이 고 하 나 는 메 인 라 이브 러 리 로 이동 하여 조회 하 는 것 입 니 다.
동시 접속 및 동시 조회
innodb_thread_concurrency 인 자 는 innodb 의 병렬 스 레 드 상한 선 을 제어 합 니 다.이 수 치 를 초과 하면 새 요청 은 대기 에 들 어 갑 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 my sql 에 이모 티 콘 저장my sql 에 emoji 표정 을 저장 하려 면 utf8mb 4 문자 집합 을 사용 해 야 합 니 다. 이것 은 4 바이트 저장 입 니 다. 최소 지원 버 전 은 5.5.3 + 입 니 다. 그렇지 않 으 면 새로운...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.