시스템 설계자-소프트웨어 숙련도 테스트 (고급)-논문-신뢰성

시스템 설계자-소프트웨어 숙련도 테스트 (고급)-논문-신뢰성

머리말

먼저,이 두 달이 바빴 기 때문에 왜이 두 달 동안 뉴스가 없는지 이야기하겠습니다.

첫 번째는 상반기 시스템 분석가 자격증을 받고 요약을 완성하는 것입니다. 9 월에 PMP 시험 (4A 통과, 여전히 열심히 노력해야 함)에 이어 11 월에 소프트 시험이 이어졌습니다. 나는 일에 대해 이야기하지 않겠지 만 다행스럽게도 개인적인 문제는 없습니다. 따라서이 두 달 동안 블로그 할 시간이 없지만 앞으로 블로그 할 시간이있을 것입니다.

시스템 아키텍트의 지점에 관해서는 원래 종료 할 예정이었습니다. 그러다 갑자기 모두가 시스템 아키텍트의 논문에 더 관심이 있다는 것을 알게되었고, 내가 아키텍트 / 분석가 그룹이 있다는 것을 알게 된 이후 사람들은 계속해서 나에게 비공개 메시지를 보내 왔습니다. 그래서 저는 돌아가서 다른 시스템 설계자의 논문을 게시했습니다. 시스템 분석가, PMP 및 프로젝트 관리자의 지식을 분류 할 시간을 찾을 계획입니다. 결국 지난 1 년간 시스템 아키텍트, 시스템 분석가, PMP를 잇달아 통과하고, 상위 프로젝트에 참여하고 완료했습니다 (아직 통과했는지는 모르겠지만), 저의 학습 방법은 생각합니다. , 지식 시스템 등 어느 정도 효과가 있기 때문에 모두에게 도움이 되었으면합니다. 헤헤.

오. 거의 잊었다. 제 건축가 / 분석가 그룹은 초대를 받았기 때문에 그룹 번호를 추가 할 수 없습니다. 따라서 건축가 / 분석가로 참여하는 친구가 있다면 저와 개인적으로 대화를 나누세요. 감사합니다.

1. 이론

(강조, 그림이 절대적으로 선명합니다. 선명하게 보이지 않으면 새 페이지에서 열거 나 다운로드하십시오)

종이

초록 :
저는 2015 년 11 월 저장성 온라인 교육 플랫폼의“외국인 교사를위한 일대일 온라인 교육”프로젝트에 참여했습니다.이 프로젝트는 고객에게 유럽의 외국 교사를위한 일대일 비디오 교육을 제공하고 미국, 소셜 서클, 공개 생방송 및 기타 기능 소프트웨어 지원이 프로젝트 팀에서는 전체 아키텍처 디자인 및 미들웨어 선택을 주로 담당하는 시스템 설계자로 일하고 있습니다. 교육 플랫폼을 예로 들어이 기사에서는 주로 시스템 안정성의 설계 및 적용과 직면 한 문제 및 솔루션에 대해 설명합니다. 한편으로는 내결함성 기술의 이중화 설계는로드 밸런싱을 통해 실현되고, 다른 한편으로는 계층 적 아키텍처 스타일을 통해 시스템 구조를 명확히하여 시스템 설계 복잡성을 줄이고 시스템 신뢰성을 향상시킵니다. 전체 시스템 개발 작업은 18 개월 동안 지속되었습니다. 현재이 시스템은 거의 1 년 반 동안 안정적으로 작동하고 있습니다. 실습은 내결함성 설계, 복잡성 감소 설계 등을 통해 시스템이 효과적으로 신뢰성을 향상시켜 회사의 비즈니스에 지속적이고 안정적인 서비스 지원을 제공함을 입증했습니다.

텍스트 :
국가가 교육에 점점 더 많은 관심을 기울이면서 영어 교육의 시장 점유율이 점차 증가하고 있으며 사용자의 구두 영어에 대한 수요가 증가하고 있습니다. 이러한 이유로 일부 기업은 외국인과의 채팅 플랫폼을 제공하기 시작했습니다. 우리 회사는 국제 커뮤니케이션 분야에서 구두 교육 분야에 진출하기로 결정했습니다. 이러한 전략적 변화를 위해 회사는 2015 년 11 월 온라인 교육 플랫폼 시스템 (이하 "시스템")을 설계했습니다. 이 시스템은 사람들이 유럽과 미국의 외국 교사들과 대면 구두 의사 소통 및 교육을 수행하는 데 도움이됩니다. 그중 Random Chat은 유사한 QQ 화상 통화를 제공하며 공식 과정은 H5 대화 형 코스웨어와 수업 후 댓글도 제공하여 교육 품질을 향상시킵니다. 동시에 새로운 방송을 가져 오는 데 사용되는 공개 생방송도 있으며 AI 테스트는 대학의 능력을 평가하고 비용을 줄이는 데 사용됩니다. 저는 시스템 아키텍처 설계를 담당하는 시스템 아키텍트로서 프로젝트 개발에 참여했습니다. 이 프로젝트 팀에는 9 명이 있으며 주로 프로젝트 계획 수립, 수요 분석, 전체 아키텍처 설계 및 기술 선택, 기본 설계의 일부를 담당하고 있습니다. 프로젝트의 건축 작업은 다음 해 2 월에 완료되었으며 계층 적 건축 양식이 선택되었습니다. 전체 프로젝트는 18 개월이 걸렸으며 2017 년 5 월에 완료되었습니다.
현재 주류 신뢰성 설계 기술에는 내결함성 설계, 결함 감지 설계 및 복잡성 감소 설계가 포함됩니다. 내결함성 설계 기술은 복구 블록 설계, N 버전 프로그램 설계 및 중복 설계로 구분됩니다. 복구 블록 설계는 소프트웨어 작업 그룹을 내결함성 설계 단위로 선택하고 공통 프로그램 블록을 복구 블록에 프로그래밍하는 것입니다. N 버전 프로그래밍의 핵심은 소프트웨어 모듈 / 버전 중 하나의 실패를 방지하고 소프트웨어를 실현하기 위해 잘못된 서비스를 제공하기 위해 동일한 초기 조건 및 동일한 입력 작업 결과에 대해 다수의 투표를 달성하기 위해 여러 모듈 또는 다른 버전을 설계하는 것입니다. 결함 허용. 이중화 설계는 전체 소프트웨어 시스템을 백업으로 사용하는 것 외에도 경로, 알고리즘 또는 구현 방법이 다른 모듈 또는 시스템을 설계하는 것입니다. 장애 발생시 이중화 부분을 교체하여 소프트웨어 시스템 정상 작동을 유지할 수 있습니다. . 단점은 비용과 자원 소비가 증가한다는 것입니다. 오류 감지 기술은 소프트웨어 장애 후 적시에 감지하고 경고 할 수 있습니다. 단점은 자동으로 오류를 해결할 수 없다는 것입니다. 복잡성을 줄이기위한 설계는 소프트웨어 복잡성이 소프트웨어 안정성과 밀접한 관련이 있고 소프트웨어 결함의 중요한 원인이기 때문입니다. 설계시 소프트웨어의 복잡성을 줄이는 것이 소프트웨어의 신뢰성을 향상시키는 효과적인 방법입니다.

시스템 요구 사항을 이해 한 후 회사의 기술 컨설턴트의 제안을 따르기로 결정했습니다. 내결함성 설계는 주로 이중화 설계에 사용되며 이중화 설계는로드 밸런싱 및 이중 시스템 내결함성과 같은 메커니즘을 통해 완료됩니다. 오류 감지 설계는 Java 예외 처리 메커니즘의 설계 및 캡슐화를 통해 완료됩니다. 복잡성을 줄이기 위해 계층 적 아키텍처 스타일을 채택하여 시스템 구조를 명확하고 3 차원 적으로 만들어 시스템 신뢰성을 향상시킵니다. 다음으로 시스템의 이중화 설계 및 복잡성 감소 설계에서 시스템의 신뢰성 설계 및 적용과 응용 과정에서 발생하는 문제점 및 솔루션을 소개합니다.

1. 중복 설계 :

이중화 설계에 대해 먼저 이야기하겠습니다. 이중화에는 논리 이중화, 데이터 이중화 및 애플리케이션 이중화가 포함됩니다. 애플리케이션 중복성을 예로 들어 보겠습니다. 시스템의 성능, 신뢰성, 확장 성 등을 향상시키기 위해로드 밸런싱 기술을 채택했습니다. 일반적인로드 밸런싱 기술에는 F5 하드웨어, LVS 소프트웨어, Nginx 서버 구성 등이 포함됩니다. 편의성과 비용을 고려하여 Nginx 서버 구성 부하 분산 기술을 채택했습니다. Nginx 서버의 업스트림 모듈 구성을 통해 여러 서버의 리버스 프록시 홈로드 밸런싱을 실현할 수 있습니다. 로드 밸런싱을 사용한 후 응용 프로그램 서버 클러스터는 세션 문제를 통합 할 수 없다는 문제가 있습니다. 세션 고정, 세션 복제, 세션 데이터 중앙 집중식 스토리지 및 쿠키 기반의 네 가지 솔루션이 있습니다. 세션 고정은 동일한 세션에 대한 모든 요청이 동일한 웹 서버에서 처리되도록함으로써 달성됩니다. 세션 복제는 웹 서버 간의 세션 데이터 동기화를 증가시켜 서로 다른 웹 서버 간의 세션 데이터 일관성을 보장합니다. 쿠키 기반은 쿠키를 통해 세션 데이터를 전달하는 것입니다. 고려 후 세션 데이터 중앙 집중식 스토리지를 채택했습니다. 세션 데이터의 중앙 집중식 저장은 각 서버가 전용 세션 서버에서 세션 데이터를 얻을 수 있도록하여 문제를 해결합니다. 장점은 안정성, 이식성 및 확장 성입니다. 단점은 한편으로 세션 데이터를 읽고 쓰는 것은 네트워크 운영을 유발하고 데이터 읽기가 지연되고 불안정하지만 인트라넷 통신을 사용하는 시스템에는 큰 영향을 미치지 않는다는 것입니다. 반면 세션 서버 나 클러스터에 문제가 있으면 전체 애플리케이션에 영향을 미칩니다. 이중 시스템 내결함성 메커니즘을 통해이 문제를 해결합니다. 또한 하트 비트 라인 및 워치 독과 같은 기술이 있습니다. 공간의 제약으로 반복하지 않겠습니다.

2. 복잡성 감소 설계 :

다른 하나는 설계의 복잡성을 줄이는 것입니다. 시스템의 복잡성과 포괄적 인 특성으로 인해 계층 적 아키텍처 스타일을 채택하고 시스템 아키텍처를 액세스 계층, 애플리케이션 계층, 서비스 계층 및 데이터 계층의 4 단계로 나누기로 결정했습니다. . 애플리케이션 계층과 서비스 계층을 예로 들어 보겠습니다. 애플리케이션 레이어는 뷰 레이어와 비즈니스 로직 레이어로 나뉘며, 뷰 레이어는 앱과 웹 사이트의 성능을 담당하고 비즈니스 로직 레이어는 비즈니스 레이어의 로직 처리를 담당합니다. 점점 복잡 해지는 시스템과 부풀려진 애플리케이션 문제를 해결하기 위해 애플리케이션에 따라 시스템을 수평으로 나누고 코스웨어 관리 시스템, 코스 관리 시스템 등 10 개 이상의 하위 시스템으로 시스템을 나눕니다. 예를 들어, 코스웨어 관리 시스템은 코스웨어 편집, 코스웨어 미리보기, 코스웨어 상호 작용 및 기타 기능 모듈과 함께 수업에서 학생들이 사용하는 코스웨어를 담당합니다. 기능 모듈은 서비스 계층의 서비스 지원을 호출해야합니다. 예를 들어 코스웨어 상호 작용 모듈은 학생과 교사 간의 코스웨어 상호 작용 기능을 구현하기 위해 스톰프 통신 서비스를 호출해야합니다. 또한 코스웨어 상호 작용 모듈은 계정 서비스를 호출하여 코스웨어 양측의 신원을 설정하여 코스웨어 상호 작용 과정에서 코스웨어 상호 작용 부분에 대한 두 당사자의 상호 작용 권한을 명확히합니다. 이 부서는 시스템 시스템을 명확하게 만들고 시스템 복잡성을 크게 줄이고 시스템 안정성을 향상시킵니다. 애플리케이션 계층은 주로 Servlet 및 JSP 기술을 통해 구현되는 J2ee 기반 MVC 프레임 워크 -Structs 프레임 워크를 채택합니다. 또한 동적 및 정적 분리, 동적 리소스 정적 화 등이 있으며 여기에서는 반복되지 않습니다.

서비스 계층은 일반 서비스를 제공합니다. 시스템은 애플리케이션 계층의 애플리케이션에 따라 수평으로 분할되어 시스템 복잡성을 효과적으로 줄입니다. 그러나 시스템 코드에는 여전히 중복성이 있습니다. 예를 들어 사용자 정보 호출에는 많은 응용 프로그램 하위 시스템의 관련 모듈이 있습니다. 또한 애플리케이션의 크기는 여전히 매우 크고 복잡하며, 너무 작은 애플리케이션 분할은 데이터베이스 연결 부담을 증가시킬 수 있으므로 서비스 지향 솔루션을 제안합니다. 서비스 솔루션은 계정 서비스, 세션 서비스 등 각 애플리케이션의 일반 서비스를 추출하는 것입니다. 기술적 성숙도와 기술 지원을 고려하여 마침내 Ali의 더보 서비스 프레임 워크를 채택하여 서비스 계층을 구축했습니다. 개발 과정에서 서비스 프레임 워크 배포 문제는 서비스 프레임 워크를 구현하는 jar 패키지 및 애플리케이션이 의존하는 jar 패키지와 충돌합니다. 전자의 경우 Tomcat을 웹 컨테이너로 사용하고 서비스 프레임 워크를 컨테이너의 일부로 사용합니다. 후자에서는 Java의 ClassLoader를 사용하여 서비스 프레임 워크 자체에서 사용하는 클래스를 애플리케이션의 클래스에서 분리합니다. 또한 서비스 스레드 풀 격리, 분산 요청 병합 및 서비스 호출 측 프로세스 제어를 통해 시스템 복잡성을 줄이고 시스템 안정성을 향상시킵니다. 세부 사항은 공간이 제한되어 있으며 여기에서 반복하지 않습니다.

결국이 프로젝트는 성공적으로 시작되어 거의 1 년 반 동안 정상적으로 실행되었으며 모든 당사자로부터 좋은 평가를 받았습니다. 특히 H5 코스웨어의 좋은 상호 작용으로 인해 많은 업계 동료들이 코스웨어를 만들기 위해 H5로 전환하고 모방하게되었습니다. 또한 서비스 지향 솔루션 아키텍처는 많은 전통적인 인터넷 엔터프라이즈 시스템 재구성을위한 클래식 솔루션으로 사용됩니다. 시스템의 아키텍처 설계에서 우리는 유지 관리 비용을 효과적으로 줄이고 시스템의 개방성, 확장 성, 재사용 성 및 이식성을 향상시키는 계층 적 아키텍처의 설계 아이디어를 도입했습니다. 물론 여전히 몇 가지 문제가 있습니다. 예를 들어 H5 코스웨어는 http 프로토콜을 사용하여 불법적으로 탈취되어 광고에 삽입되기 쉬우 며이를 해결하기 위해 프로토콜을 https로 수정할 수 있습니다. 또한 우리가 사용하는로드 밸런싱 알고리즘은 가중 라운드 로빈 알고리즘으로 너무 단순하고 종종 비합리적인 리소스 할당을 유발하므로 알고리즘을 가중치가 적용된 최소 연결 알고리즘으로 변경하여 해결할 수 있습니다. 앞으로의 시스템 설계 및 개발에서 주목하고 개선해야 할 부분이며 앞으로 나아가 야 할 방향이기도합니다.

셋, 요약

이 논문의 프로젝트는 여전히 이전 논문 인 온라인 교육 시스템의 프로젝트입니다. 그러나 이러한 기술 중 상당수는 원래 프로젝트에 실제로 관여하지 않았습니다.

또한이 논문과 이전 논문 사이에는 구조적 차이가있다. 즉 이번 핵심 논점은 두 가지 점만있다. 그러나 두 번째 인자 감소 복잡성 설계는 두 가지 측면을 통해 설명된다. 이것은 논문의 핵심 주장에 대한 답으로 볼 수 있습니다. 논문의 핵심 논거로 세 가지 하위 주제를 사용하는 것이 권장되며, 일부 핵심 논거는 두 개의 하위 주제로만 분할 될 수 있습니다 (또는 세 가지 논거의 차원이 익숙하지 않음). 이때, 당신의 생각을 유연하게 바꾸고 핵심 논증의 두 부인 수 인 주인 수와 부인 수에 답할 필요가 있습니다. 실제 구체화는 주인 수 두 문단과 부인 수 한 문단입니다.

이제 내가 이것을 말 했으므로 핵심 논쟁이 여러 하위 논쟁으로 나뉘어 질 수 있다면 그것에 대해서도 이야기하겠습니다. 예를 들어 아키텍처 스타일의 계층 적 구조는 액세스 레이어, 애플리케이션 레이어, 서비스 레이어 (기본 서비스 레이어, 일반 서비스 레이어, 비즈니스 서비스 레이어), 데이터 액세스 레이어, 데이터 소스 등으로 완전히 나눌 수 있습니다. 이 경우 세 가지 익숙한 부분을 정교하게 선택할 수 있습니다. 이런 식으로 글을 쓰는 것이 걱정되고 기사가 다소 경직된 경우 관련 위치에 "여기, 우리는 XXX, XXX, XXX에 중점을 둡니다"라는 단어를 쓰십시오.

부록

편집되지 않은 초기 논문 :

초록 :
저는 2015 년 11 월 저장성 온라인 교육 플랫폼의“외국인 교사를위한 일대일 온라인 교육”프로젝트에 참여했습니다.이 프로젝트는 고객에게 유럽의 외국 교사를위한 일대일 비디오 교육을 제공하고 미국, 소셜 서클, 공개 생방송 및 기타 기능 소프트웨어 지원이 프로젝트 팀에서는 전체 아키텍처 디자인 및 미들웨어 선택을 주로 담당하는 시스템 설계자로 일하고 있습니다. 이 기사에서는 교육 플랫폼을 예로 들어 주로 시스템 안정성의 설계 및 적용에 대해 설명합니다. 한편으로는 내결함성 기술의 이중화 설계는로드 밸런싱 및 애플리케이션 서버 클러스터를 통해 구현되고, 다른 한편으로는 액세스 레이어, 애플리케이션 레이어, 서비스 레이어, 데이터 레이어의 4 계층 아키텍처를 구축하여 명확한 시스템 구조 설계 복잡성 및 시스템 신뢰성 향상. 전체 시스템 개발 작업은 18 개월 동안 지속되었습니다. 현재이 시스템은 거의 1 년 반 동안 안정적으로 작동하고 있습니다. 실습은 내결함성 설계, 복잡성 감소 설계 등을 통해 시스템이 효과적으로 신뢰성을 향상시켜 회사의 비즈니스에 지속적이고 안정적인 서비스 지원을 제공함을 입증했습니다.

텍스트 :
국가가 교육에 대한 관심이 증가함에 따라 영어 교육의 시장 점유율이 점차 증가하고 있으며 사용자의 구두 영어에 대한 수요가 증가하고 있습니다. 이러한 이유로 일부 기업은 외국인과의 채팅 플랫폼을 제공하기 시작했습니다. 우리 회사는 국제 커뮤니케이션 분야에서 구두 교육 분야에 진출하기로 결정했습니다. 이러한 전략적 변화를 위해 회사는 2015 년 11 월 온라인 교육 플랫폼 시스템 (이하 "시스템")을 설계했습니다. 이 시스템은 사람들이 유럽과 미국의 외국 교사들과 대면 구두 의사 소통 및 교육을 수행하는 데 도움이됩니다. 그중 Random Chat은 유사한 QQ 화상 통화를 제공하며 공식 과정은 H5 대화 형 코스웨어와 수업 후 댓글도 제공하여 교육 품질을 향상시킵니다. 동시에 새로운 방송을 가져 오는 데 사용되는 공개 생방송도 있으며 AI 테스트는 대학의 능력을 평가하고 비용을 줄이는 데 사용됩니다. 저는 시스템 아키텍처 설계를 담당하는 시스템 아키텍트로서 프로젝트 개발에 참여했습니다. 이 프로젝트 팀에는 9 명이 있으며 주로 프로젝트 계획 수립, 수요 분석, 전체 아키텍처 설계 및 기술 선택, 기본 설계의 일부를 담당하고 있습니다. 프로젝트의 건축 작업은 다음 해 2 월에 완료되었으며 계층 적 건축 양식이 선택되었습니다. 전체 프로젝트는 18 개월이 걸렸으며 2017 년 5 월에 완료되었습니다.

현재 주류 신뢰성 설계 기술에는 내결함성 설계, 결함 감지 설계 및 복잡성 감소 설계가 포함됩니다. 내결함성 설계 기술은 복구 블록 설계, N 버전 프로그램 설계 및 중복 설계로 구분됩니다. 복구 블록 설계는 소프트웨어 작업 그룹을 내결함성 설계 단위로 선택하고 공통 프로그램 블록을 복구 블록에 프로그래밍하는 것입니다. N 버전 프로그래밍의 핵심은 소프트웨어 모듈 / 버전 중 하나의 실패를 방지하고 소프트웨어를 실현하기 위해 잘못된 서비스를 제공하기 위해 동일한 초기 조건 및 동일한 입력 작업 결과에 대해 다수의 투표를 달성하기 위해 여러 모듈 또는 다른 버전을 설계하는 것입니다. 결함 허용. 이중화 설계는 전체 소프트웨어 시스템을 백업으로 사용하는 것 외에도 경로, 알고리즘 또는 구현 방법이 다른 모듈 또는 시스템을 설계하는 것입니다. 장애 발생시 이중화 부분을 교체하여 소프트웨어 시스템 정상 작동을 유지할 수 있습니다. . 단점은 비용과 자원 소비가 증가한다는 것입니다. 오류 감지 기술은 소프트웨어 장애 후 적시에 감지하고 경고 할 수 있습니다. 단점은 자동으로 오류를 해결할 수 없다는 것입니다. 복잡성을 줄이기위한 설계는 소프트웨어 복잡성이 소프트웨어 안정성과 밀접한 관련이 있고 소프트웨어 결함의 중요한 원인이기 때문입니다. 설계시 소프트웨어의 복잡성을 줄이는 것이 소프트웨어의 신뢰성을 향상시키는 효과적인 방법입니다.

시스템 요구 사항을 이해 한 후 우리는 회사의 기술 컨설턴트의 조언을 따르고 내결함성 설계, 결함 감지 설계 및 복잡성 감소 설계의 세 가지 주요 방향으로 해당 처리 및 적용을하기로 결정했습니다. 내결함성 설계는 주로 중복 설계에 사용되며 중복 설계는로드 밸런싱 및 이중 시스템 내결함성과 같은 메커니즘을 통해 완료됩니다. 오류 감지 설계는 Java 예외 처리 메커니즘의 설계 및 캡슐화를 통해 완료됩니다. 복잡성을 줄이기 위해 명확한 4 층 구조를 적용합니다. 시스템을 액세스 계층, 애플리케이션 계층, 서비스 계층 및 데이터 계층으로 나눔으로써 시스템의 구조가 명확하고 3 차원 적이므로 시스템 복잡성이 줄어 듭니다. 공간의 제약으로 인해 다음으로 이중화 설계와 복잡성 감소 설계의 두 가지 측면에서 시스템의 신뢰성 설계 및 적용과 적용 과정에서 발생하는 문제를 소개하겠습니다.

이중화 설계에 대해 먼저 이야기하겠습니다. 이중화에는 논리 이중화, 데이터 이중화 및 애플리케이션 이중화가 포함됩니다. 애플리케이션 중복성을 예로 들어 보겠습니다. 한편으로는 애플리케이션 서버의 성능을 향상시키고 다른 한편으로는 시스템의 신뢰성과 확장 성을 높이기 위해로드 밸런싱 기술을 채택했습니다. 일반적인로드 밸런싱 기술에는 F5 하드웨어, LVS 소프트웨어, Nginx 서버 구성 등이 포함됩니다. 편의성과 비용을 고려하여 Nginx 서버 구성 부하 분산 기술을 채택했습니다. Nginx 서버의 업스트림 모듈 구성을 통해 여러 서버의 리버스 프록시 홈로드 밸런싱을 실현할 수 있습니다. 로드 밸런싱 서버의 안정성을 향상시키기 위해 이중 시스템 핫 백업 메커니즘을 채택합니다. 하지만로드 밸런싱을 사용한 후 애플리케이션 서버 클러스터는 세션 문제를 통합 할 수 없다는 문제가 있습니다. 세션 고정, 세션 복제, 세션 데이터 중앙 집중식 스토리지 및 쿠키 기반의 네 가지 솔루션이 있습니다. 세션 고정은 동일한 세션에 대한 모든 요청이 동일한 웹 서버에서 처리되도록함으로써 달성됩니다. 세션 복제는 웹 서버 간의 세션 데이터 동기화를 증가시켜 서로 다른 웹 서버 간의 세션 데이터 일관성을 보장합니다. 그러나 한편으로는 세션 데이터를 동기화하면 네트워크 대역폭 오버 헤드가 발생합니다. 반면에 각 웹 서버는 모든 세션 데이터를 저장해야하며 많은 메모리를 소비해야합니다. 고려한 후 세 번째 옵션 인 세션 데이터 중앙 집중식 스토리지를 채택했습니다. 세션 데이터의 중앙 집중식 저장은 각 서버가 전용 세션 서버에서 세션 데이터를 얻을 수 있도록하여 문제를 해결합니다. 장점은 안정성, 이식성 및 확장 성입니다. 단점은 한편으로 세션 데이터를 읽고 쓰는 경우 네트워크 작업이 발생하여 데이터 읽기가 지연되고 불안 정해지지 만 인트라넷 통신을 사용하는 시스템에는 큰 영향을 미치지 않는다는 것입니다. 반면 세션 서버 나 클러스터에 문제가 있으면 전체 애플리케이션에 영향을 미칩니다. 이중 시스템 내결함성 메커니즘을 통해이 문제를 해결합니다. 쿠키 기반은 쿠키를 통해 세션 데이터를 전달하는 것입니다. 구현은 간단하지만 쿠키 길이 제한과 같은 문제가 있습니다. 또한 하트 비트 라인 및 워치 독과 같은 많은 기술이 있습니다. 공간의 제약으로 반복하지 않겠습니다.

다른 하나는 디자인의 복잡성을 줄이는 것이며 건축 스타일 선택 및 기술 선택의 관점에서 구현합니다. 시스템의 복잡성과 포괄 성으로 인해 계층 적 아키텍처 스타일을 채택하고 시스템 아키텍처를 액세스 계층, 애플리케이션 계층, 서비스 계층 및 데이터 계층의 4 단계로 나누기로 결정했습니다. 액세스 계층은 다중 플랫폼 액세스, API 게이트웨이, 부하 분산 등을 담당합니다. API 게이트웨이의 사용은 외부 리소스와 서비스를 통합하고 명확한 시스템 구조를 유지하며 시스템 안정성을 향상시킵니다. 애플리케이션 레이어는 뷰 레이어와 비즈니스 로직 레이어로 나뉘며, 뷰 레이어는 앱과 웹 사이트의 성능을 담당하고 비즈니스 로직 레이어는 비즈니스 레이어의 로직 처리를 담당합니다. 점점 복잡 해지는 시스템과 부풀려진 애플리케이션 문제를 해결하기 위해 애플리케이션에 따라 시스템을 수평으로 나누고 코스웨어 관리 시스템, 코스 관리 시스템 등 10 개 이상의 하위 시스템으로 시스템을 나눕니다. 이 부서는 시스템 시스템을 더 명확하게 만들고 시스템 복잡성을 크게 줄이고 시스템 안정성을 향상시킵니다. 애플리케이션 계층은 J2ee 기반 MVC 프레임 워크 -Structs 프레임 워크를 사용합니다. 서비스 계층은 일반 서비스를 제공합니다. 시스템은 애플리케이션 계층의 애플리케이션에 따라 수평으로 분할되어 시스템 복잡성을 효과적으로 줄입니다. 그러나 시스템 코드에는 여전히 중복성이 있습니다. 예를 들어 사용자 정보 호출에는 많은 응용 프로그램 하위 시스템의 관련 모듈이 있습니다. 또한 애플리케이션의 크기는 여전히 매우 크고 복잡하며, 너무 작은 애플리케이션 분할은 데이터베이스 연결 부담을 증가시킬 수 있으므로 서비스 지향 솔루션을 제안합니다. 서비스 솔루션은 계정 서비스, 세션 서비스 등 각 애플리케이션의 일반 서비스를 추출하는 것입니다. 기술적 성숙도와 기술 지원을 고려하여 마침내 Ali의 더보 서비스 프레임 워크를 채택하여 서비스 계층을 구축했습니다. 데이터 계층에는 캐시, 파일 시스템, 데이터베이스, 데이터 알림 서비스 및 검색 시스템과 같은 모듈이 포함됩니다. 사용자는 중앙 집중식 데이터 액세스를 가지고 있기 때문에 Spring Cache 및 Redis를 기반으로 캐싱 메커니즘을 구현합니다. 데이터 액세스 측면에서 Java에는 이미 많은 성숙한 기술이 있으며, 이는 대략적으로 전용 API, JDBC 및 ORM 또는 ORM 유사 인터페이스의 세 가지 유형으로 나눌 수 있습니다. 마지막으로 성숙한 ORM 프레임 워크 인 Mybatis 프레임 워크를 채택한 다음 프레임 워크를 레이어로 패키징했습니다. 이렇게하면 한편으로는 시스템 개발 효율성이 향상되고 다른 한편으로는 시스템 이식성과 신뢰성이 향상됩니다. 또한 solr는 데이터 계층 검색 엔진으로도 사용되며 데이터 액세스 계층의 물리적 배포는 프록시를 사용합니다. 공간의 제약으로 반복하지 않겠습니다.

결국이 프로젝트는 성공적으로 시작되어 거의 1 년 반 동안 정상적으로 실행되었으며 모든 당사자로부터 좋은 평가를 받았습니다. 특히 H5 코스웨어의 좋은 상호 작용으로 인해 많은 업계 동료들이 코스웨어를 만들기 위해 H5로 전환하고 모방하게되었습니다. 또한 서비스 지향 솔루션 아키텍처는 많은 전통적인 인터넷 엔터프라이즈 시스템 재구성을위한 클래식 솔루션으로 사용됩니다. 시스템의 아키텍처 설계에서 우리는 유지 관리 비용을 효과적으로 줄이고 시스템의 개방성, 확장 성, 재사용 성 및 이식성을 향상시키는 계층 적 아키텍처의 설계 아이디어를 도입했습니다. 물론 여전히 몇 가지 문제가 있습니다. 예를 들어 H5 코스웨어는 http 프로토콜을 사용하여 불법적으로 탈취되어 광고에 삽입되기 쉬우 며이를 해결하기 위해 프로토콜을 https로 수정할 수 있습니다. 또한 우리가 사용하는로드 밸런싱 알고리즘은 가중 라운드 로빈 알고리즘으로 너무 단순하고 종종 비합리적인 리소스 할당을 유발하므로 알고리즘을 가중치가 적용된 최소 연결 알고리즘으로 변경하여 해결할 수 있습니다. 앞으로의 시스템 설계 및 개발에서 주목하고 개선해야 할 부분이며 앞으로 나아가 야 할 방향이기도합니다.

추천

출처blog.csdn.net/lv842586821/article/details/109227160