springboot-plus는 사용자 관리, 조직 관리, 역할 관리, 기능 포인트 관리, 메뉴 관리, 권한 할당, 데이터 권한 할당, 코드 생성 및 기타 기능을 포함하는 SpringBoot 2 기반의 관리 백엔드 시스템입니다.
이 시스템은 Spring Boot2 기술을 기반으로 하며 프런트엔드는 Layui2를 사용합니다. 데이터베이스는 MySQL을 예로 사용하며 이론적으로는 크로스 데이터베이스 플랫폼입니다.
플러스는 모놀리식 시스템과 시스템 분할에 적합한 자바 신속 개발 플랫폼입니다. 마이크로서비스 플랫폼으로의 변환도 가능합니다. 그래서 포기했어요)
모놀리식 시스템, 소규모 시스템, 마이크로서비스의 차이점은 다음과 같습니다.
모놀리식 시스템은 일반적인 시스템 설계 방식이자 지난 10년간 가장 중요한 설계 방식이기도 하다. 단일 시스템의 모든 기능은 하나의 프로젝트에 있고, 전쟁 패키지로 패키징되어 배포됩니다. 여기에는 다음과 같은 분명한 이점이 있습니다.
1. 단일 시스템의 개발 방법은 간단합니다. 처음부터 프로그래밍을 배울 때 개발자는 현재 프로젝트 개발에만 집중하면 됩니다.
2. 수정이 용이합니다. 기능을 수정해야 하는 경우 프로젝트 범위 내에서 코드만 수정하면 됩니다.
3. 테스트는 간단합니다. 단일 시스템을 테스트할 때 다른 시스템을 고려할 필요가 없으며, 이 책의 2권에서 언급한 다양한 REST 및 MQ 호출을 피하십시오.
4. 배포도 매우 쉽습니다. 다른 시스템과의 관계를 고려할 필요 없이 war 패키지를 패키징하여 웹 서버에 배포하기만 하면 됩니다.
5. 성능 확장이 용이하며, Nginx를 통해 애플리케이션을 여러 서버에 배포할 수 있습니다.
비즈니스 개발 및 재구성으로 인해 모놀리식 시스템이 점점 더 많아지고 있습니다. 거대한 모놀리식 시스템을 개발할 때 다음과 같은 단점이 있습니다.
1. 단일 시스템은 거대하고 단일 시스템을 이해하기가 점점 더 어려워지고 있습니다. 작은 변화에는 다양한 측면이 포함되므로 개발팀이 주의를 기울이게 되고 개발 속도가 점점 더 느려질 것입니다. 또한 대규모 단일 시스템을 시작하는 데 3분 이상이 걸릴 수 있습니다.
2. 동일한 단일 시스템에서 여러 기능이 개발되므로 테스트 속도가 점점 느려집니다. 예를 들어 테스트를 예약하고 순차적으로 테스트해야 합니다.
3. 단일 시스템의 기술을 업그레이드하려는 경우 비용이 매우 높을 수 있습니다. 소규모 시스템인 경우 먼저 소규모 시스템을 선택해 시도해 볼 수 있습니다. 하나의 대규모 시스템을 기술적으로 업그레이드하는 것은 거의 불가능합니다.
4. 단일 시스템의 모든 기능은 동일한 JVM에서 실행되며 기능이 서로 영향을 미칩니다. 예를 들어 업로드된 워드 문서의 페이지 수를 계산하는 기능은 많은 CPU를 소비하므로 전체 시스템이 일시적으로 사용됩니다. 통계 함수 호출로 인해 사용할 수 없는 경우 애니메이션이 정지되는 현상이 나타납니다.
따라서 시스템을 설계할 때 점점 더 많은 설계자가 시스템을 여러 개의 개별 소규모 시스템이나 심지어 마이크로서비스로 분할하는 것을 고려하게 됩니다. 전통적인 엔터프라이즈 애플리케이션의 경우 소규모 시스템으로 분할하는 것이 더 적합합니다. 인터넷 시스템의 경우 마이크로서비스를 사용하는 것이 더 적합하기 때문입니다.
1. 기존 IT 시스템은 기본적으로 여전히 데이터베이스를 사용하는 반면, 마이크로서비스는 하나의 서비스와 하나의 데이터베이스를 옹호합니다.
2. 기존 IT 시스템에서는 다른 모듈 서비스를 호출할 필요가 거의 없습니다. 기존 IT 시스템은 워크플로를 통해 다른 하위 시스템을 연결합니다. 전자상거래 마이크로서비스는 경량 프로토콜인 RPC 및 기타 방법을 통해 상호 작용합니다. 기존 IT 시스템은 중량급 프로토콜을 사용하여 SOA 및 JMS를 통해 다른 시스템(하위 시스템이 아닌)과 상호 작용할 수도 있습니다.
3. 마이크로서비스는 마이크로서비스 거버넌스, 탄력적 라이브러리 등과 같은 시스템 인프라에 대한 요구 사항이 매우 높습니다. 전자 상거래 시스템만이 이러한 일을 수행할 수 있는 인력과 물적 자원을 갖고 있는 반면, 전통적인 IT 시스템은 자금이 풍부하더라도 , 서비스와 같은 IT 인프라는 당분간 마이크로서비스 기능을 갖추고 있지 않습니다.
따라서 대부분의 전통적인 IT 애플리케이션의 경우 하나의 소규모 시스템을 분할해도 기술적인 위험이 없으며 즉시 구현이 가능한 아키텍처입니다. 다음은 분할 후 단일 시스템의 물리적 아키텍처입니다.
사용자의 경우 다양한 메뉴 기능에 액세스하면 다양한 하위 시스템을 찾고 서비스가 제공됩니다.