머리말
이 기사에서는 Dubbo, Spring Cloud, Service Mesh 및 기타 기술을 통해 마이크로 서비스 시스템을 구축하고 마이크로 서비스 아키텍처의 개발 기록, 도메인 기반 설계, 일반적인 안정성 보장 방법 및 분산 트랜잭션의 일관성 체계를 간단한 방법으로 소개합니다. 마이크로 서비스 아키텍처의 완전한 실현을 보여주는 액티브-액티브 시스템 구축, 분산 모니터링, 마이크로 서비스 오케스트레이션, 수백억 트래픽을위한 마이크로 서비스 게이트웨이의 설계 및 구현, 결제 시나리오를 기반으로 한 마이크로 서비스 변환 등과 같은 마이크로 서비스 랜딩 솔루션에 대한 사례 연구 청사진을 작성하고 독자가 마이크로 서비스를 사용하여 기존 레거시 시스템을 개선하고 리팩토링하는 방법을 이해할 수 있도록합니다.
마이크로 서비스에 대해 들어 본 적이 없거나 처음 접하는 초보자, 마이크로 서비스를 사용하여 생산성을 높이려는 개발자 또는 운영 및 유지 관리 직원이든, 고 가용성 및 확장 가능한 마이크로 서비스 시스템을 구축하기로 결정한 설계자이든 상관없이 모두 읽을 수있어 독자에게 유익합니다.
목차
제 1 장 마이크로 서비스 아키텍처 개요 1
1.1 아키텍처 1 무엇입니까
1.2 여러 관련 개념 3
소프트웨어 수명주기 아키텍처 설계에서 1.3 7
1.4 (9) 형태의 구조의 특성
1.5 목표와 건축의 방법 (13)
(18) 1.6 아키텍처, 다양한 스타일
의 2 장 마이크로 서비스 도메인 기반 설계 30
2.1 도메인 기반 설계 31
2.1.1 도메인 기반 설계 개요 31
2.1.2 문제 도메인 및 솔루션 도메인 34
2.1.3 제한된 컨텍스트 35
2.1.4 컨텍스트 매핑 40
2.1.5 도메인 아키텍처 43
2.2
마이크로 서비스 설계 48 2.2.1 경계 컨텍스트 48
2.2.2 경계 컨텍스트는 마이크로 서비스입니다. 51
2.2.3 경계 컨텍스트 인식 53
2.2.4 마이크로 서비스 간의 협력 59
2.3 요약 63
Chapter 3 Apache Dubbo Framework 원리 64
3.1
Dubbo 프레임 워크 선택 및 사용 64 3.1.1 Dubbo 프레임 워크 선택 64
3.1.2 Dubbo 프레임 워크 사용 65
3.2 Dubbo 프레임 워크 원리 분석 70
3.2.1 전체 아키텍처 분석 70
3.2.2 Dubbo Bean loading 73
3.2.3 더보 확장 메커니즘 77
3.2.4 Dubbo 소비자 91
3.2.5 Dubbo 서버 126
3.2.6 Dubbo 통신 메커니즘 144
3.3 Dubbo 기반 자동 모의 시스템 165
3.3.1 모의 시뮬레이션 시스템 생성 166
3.3.2 Dubbo 모의 사용 167
3.3.3 Dubbo Mock의 원리 분석 168
3.3.4 자동화 된 Mock 시스템의 구현 170
4 장 Spring Boot / Spring Cloud 실습 177
4.1 Spring Boot 원리 분석 178
4.1.1 Spring Boot Quick Start 178
4.1.2 Spring Boot의 Spring Application 180
4.1.3 Spring-boot-loaded 모듈 분석 186
4.1.4 spring-boot-autoconfigure 모듈 분석 190
4.1.5 Spring Boot 조건부 주석 분석 195
4.2 Dubbo Spring Boot Starter 198
4.2.1 Dubbo Spring Boot Starter 소개 198
4.2.2 Dubbo Initializr 및 샘플 198
4.2.3 dubbo-spring-boot-autoconfigure 모듈 201
4.2.4 dubbo-spring-boot-actuator 모듈 204
4.3 스프링 클라우드 스택 211
4.3.1 마이크로 서비스 아키텍처에 스프링 클라우드가 필요한 이유 212
4.3.2 스프링 클라우드 기술 스택 개요 214
4.3.3 Spring-cloud-scaffold 기본 라이브러리 컬렉션 215
4.4
4.4.1 Maven Archetype 기반 스캐 폴딩 239 4.4.1 Maven Archetype 239
4.4.2 스캐 폴딩 구축 240
4.4.3 스캐 폴딩 생성 247
5 장 마이크로 서비스의 안정성을 보장하는 일반적인 방법 250
5.1 마이크로 서비스 안정성 250
5.2 고 가용성 250
5.2. 1 전류 제한의
원리 및 구현 250 5.2.2 회로 차단기의 원리 및 구현 256
5.2.3 시간 초과 및 재시도 260
5.3 높은 동시성 262
5.3.1 비동기식 263
5.3.2 캐시 270
5.4 요약 272
6 장 마이크로 서비스에서 트랜잭션을 보장하는 방법 273
6.1 로컬 트랜잭션에서 분산 트랜잭션으로의 진화 273
6.2 강력한 일관성 솔루션 276
6.2.1 2 단계 커밋 프로토콜 276
6.2.2 3 단계 커밋 프로토콜 278
6.3 최종 일관성 솔루션 280
6.3.1 TCC 모델 280
6.3.2 보상 모델 285
6.3.3 신뢰할 수있는 이벤트 모델 286
6.4 오픈 소스 프로젝트의 분산 트랜잭션 구현 해석 288
6.4.1 Apache RocketMQ 288
6.4.2 ServiceComb 289
100 억 트래픽 마이크로 서비스 게이트웨이 중 7 장 설계 및 구현 293
7.1 API Gateway 개요 293
7.1.1 분산 서비스 아키텍처, 마이크로 서비스 아키텍처 및 API Gateway 293
7.1.2 API Gateway의 정의, 기능 및 초점 296
7.1.3 API Gateway의 분류 및 기술 분석 298
7.2 오픈 소스 게이트웨이 분석 및 연구 300
7.2.1 공통 오픈 소스 게이트웨이 소개 300
7.2.2 4 개 오픈 소스 게이트웨이 비교 분석 308
7.2.3 오픈 소스 게이트웨이 기술 요약 309
7.3 트래픽 거래 시스템 API 게이트웨이 설계 310
7.3.1 10 억 트래픽 거래 시스템 용 API 게이트웨이의 현재 상태와 문제점 310
7.3.2 비즈니스 게이트웨이의 설계 및 모범 사례 313
8 장 마이크로 서비스 오케스트레이션 317
8.1 Netflix Conductor 317
8.2 Netflix Conductor 아키텍처 319
8.3 Conductor 사용 사례 320
8.4 Netflix Conductor 소스 코드 분석 328
8.4.1 클라이언트 계층 소스 코드 분석 330
8.4.2 서버 측 소스 코드 분석 337
8.4.3 코어 측 소스 코드 분석 344
9 장 마이크로 서비스 데이터 추출 및 통계 356
9.1 사례 스토리 356
9.2 데이터웨어 하우스 개요 358
9.2.1 데이터웨어 하우스 란? 358
9.2.2 데이터웨어 하우스 아키텍처 360
9.2.3 데이터웨어 하우스 모델링 방법 361
9.2.4 데이터 추출, 변환 및로드 361
9.2.5 데이터 통계 362
9.3 데이터웨어 하우스 도구 Hive 362
9.3.1 Hive 설치 364
9.3.2 Hive 데이터베이스 366
9.3.3 Hive 테이블 367
9.4 Sqoop을 사용하여 데이터 추출 369
9.4.1 Sqoop 설치 370
9.4.2 Hive 테이블로 MySQL 테이블 데이터 가져 오기 372
9.5 ETL 작업 예약 375
10 장 마이크로 서비스 활성-활성 시스템 구성 377
10.1 높은 시스템 가용성 377
10.2 활성-활성 데이터 센터 379
10.2 .1 단일 전산실 구축 379
10.2.2 이중 전산실 구축 380
10.2.3
결제 시나리오 기반 능동-활성 시스템 구축 383 11 장 결제 시나리오 기반 마이크로 서비스 변환 및 성능 최적화 399
11.1 결제 시나리오 소개 399
11.2 결제 사업 구축 모듈 및 서비스 부문 400
11.3 결제 시나리오에서
마이크로 서비스 아키텍처에 대한 자세한 설명 및 분석 402 11.3.1 비즈니스 아키텍처 분석 402
11.3.2 세부 기술 플랫폼 404
11.4 코드 수준에서 마이크로 서비스 아키텍처의 성능 향상 407
11.4.1 코드 및 디자인 관점에서 407
11.4. 2 전체 아키텍처의 관점에서 418
11.5 마이크로 서비스 아키텍처의 몇 가지 일반적인 결함 분석 기술 421
12 장 레거시 시스템의 마이크로 서비스 아키텍처 변환 426
12.1 코드 계층 구조의 변환 426
12.2 레거시 시스템의 결합과 생각 430
12.3 단일에서 전체 시스템에서 서비스를 분해하는 방법론 431
12.4 레거시 시스템의 마이크로 서비스 아키텍처 변환 436
12.4.1 코드 리팩토링에서 시작하기 436
12.4.2 서비스를 분할하려면 서비스 지향 아키텍처 설계가 필요합니다 437
12.4.3 재구성은 점진적인 프로세스입니다 437
12.4 .4 단위 테스트가 초석입니다. 440
12.4.5 장애를위한 설계 440
12.4.6 프런트 엔드와 백 엔드 분리 441
12.4.7 기존 데이터베이스 공유 441
12.4.8 그레이 릴리스의 필요성 442
12.4.9 로그 집계 및 전체 링크 모니터링 442
13 장 서비스 메시 상세 443
13.1 서비스 메시 란 무엇입니까 443
13.2 서비스 메시 의 배경 443
13.3 Service Mesh 소개 444
13.3.1 Service Mesh 아키텍처 444
13.3.2 Service Mesh가 할 수있는 작업 445
13.4
Service Mesh의 가치 446 13.5 Service Mesh의 현재 상태 447
13.6 Service Mesh에 존재하는 문제 448
13.7 세부 Istio 449
13.7.1 Istio 아키텍처 449
13.7 .2 데이터 플레인 450
13.7.3 컨트롤 플레인 455
13.7.4 Isito Case 458
13.8 Service Mesh Outlook 461
14 장 마이크로 서비스 모니터링 실용적인 전투 463
14.1 APM 원리 및 적용 464
14.1.1 APM 464 란
14.1.2 APM 모니터링 포인트 464
14.1.3 APM 심층 분석 464
14.2 Prometheus 모니터링 시스템 소개 492
14.2.1
Prometheus 493의 주요 기능 14.2.2 Prometheus 아키텍처 및 구성 요소 소개 493
14.2.3 Prometheus 설치 494
14.2.4 Prometheus를 사용하여 MySQL 498 모니터링
14.2. 5 Prometheus 경보 메커니즘 501
간략한 소개
이 책은 14 개의 장으로 나뉩니다.
1 장 : 마이크로 서비스 개요
소프트웨어 아키텍처의 개발 프로세스에서 시작하여 모 놀리 식 아키텍처, SOA 아키텍처 및 마이크로 서비스 아키텍처의 진화 프로세스를 간단한 용어로 설명합니다. 동시에 마이크로 서비스 아키텍처의 특성도 자세히 소개합니다.이 장에서는 마이크로 서비스 아키텍처를 매크로 관점에서 시작합니다. 서비스의 문.
2 장 : 마이크로 서비스 도메인 기반 설계
이 장에서는 독자가 공식적인 마이크로 서비스를 학습하기 전에 내부 기술을 연습 할 수 있도록 도메인 기반 설계가 무엇인지, 공통 도메인 아키텍처가 무엇인지, 도메인 기반을 마이크로 서비스에 적용하는 방법, 합리적인 서비스 분할을 위해 도메인 기반을 사용하는 방법 등을 소개합니다.
3 장 : Dubbo 원리 및 구현
현재 Dubbo는 Alibaba 기술 팀에 의해 유지되고 있으며 활발하게 개발 및 홍보되었습니다. Dubbo의 사용은 여전히 마이크로 서비스를 구축하는 데 사용될 수 있습니다.이 장에서는 Dubbo의 사용 및 기술과 소스 코드의 심층 분석에 대해 설명합니다. 독자가 Dubbo의 원리 실현을 포괄적으로 이해하게하십시오.
4 장 : Spring Cloud 실제 전투 사례
Spring Boot / Cloud는 현재 더 많이 사용되는 마이크로 서비스 프레임 워크입니다.이 장에서는 독자들에게 Spring Cloud 프레임 워크를 잘 적용하는 방법과 사용 중에 발생하는 함정을 피하는 방법을 설명하기 위해 많은 실제 사례를 사용합니다.
5 장 : 마이크로 서비스의 안정성을 보장하기 위해 일반적으로 사용되는 방법
비즈니스가 더 빠르고 더 크게 발전함에 따라 우리가 직면 한 것은 점점 더 많은 서비스가있을 때 마이크로 서비스 아키텍처의 안정성을 보장하는 방법입니다.이 장에서는 독자가 안정성 보장을 점진적으로 발견하도록 안내합니다. 일반적인 기술과 수단.
6 장 : 마이크로 서비스에서 트랜잭션의 일관성 보장
이 장에서는 로컬 트랜잭션에서 분산 트랜잭션으로의 진화를 소개하고 강력한 최종 일관성 시나리오에서 마이크로 서비스 솔루션을 심층 분석하고 2 단계 커밋 프로토콜, 3 단계 커밋 프로토콜, TCC 모드 및 보상 모드에 대해 설명합니다. , 신뢰할 수있는 이벤트 모드 등 동시에 RocketMQ 및 ServiceComb을 포함한 오픈 소스 프로젝트의 분산 트랜잭션에 대한 해석.
7 장 : 1 억 수준의 마이크로 서비스 게이트웨이 설계
이 장은 수 천억 개의 트래픽 트랜잭션 시스템의 마이크로 서비스 게이트웨이 (API 게이트웨이)가 직면 한 현상 유지와 문제에서 시작하여 마이크로 서비스 아키텍처와 API 게이트웨이 간의 관계를 설명하고 트래픽 게이트웨이와 비즈니스 게이트웨이의 컨텍스트를 정리하며 가장 포괄적 인 API 게이트웨이 지식과 경험.
8 장 : 마이크로 서비스 오케스트레이션
이 장에서는 Netflix Conductor 프레임 워크를 핵심으로하고, 프레임 워크의 사용 및 원칙에서 마이크로 서비스 오케스트레이션이 무엇인지 자세히 소개하고 마이크로 서비스가 복잡한 비즈니스 로직을 실행하는 새로운 아이디어를 제공합니다.
9 장 : 마이크로 서비스 통계 및 데이터 추출 체계
마이크로 서비스 아키텍처에서는 점점 더 많은 서비스가있을 것입니다.이 경우 데이터 통계 및 분석을 수행하는 방법이 매우 어려워 질 것입니다.이 장에서는 서로 다른 서비스 데이터베이스에서 통합 된 빅 데이터 플랫폼으로 데이터를 추출하는 방법에 대해 자세히 설명합니다. In, 사용자가 데이터 통계를보다 편리하게 수행 할 수 있도록 도와줍니다.
10 장 : 마이크로 서비스 액티브-액티브 시스템 구축
엔터프라이즈 개발의 규모가 점점 더 커짐에 따라 사용자는 시스템 안정성에 대한 요구 사항이 점점 더 높아지고 있으므로 단일 컴퓨터 실의 배포는 필연적으로 개발의 병목이 될 것입니다. 살아있는 건축.
11 장 : 결제 시나리오를 기반으로 한 마이크로 서비스 변환 및 성능 최적화
이 장은 특정 결제 비즈니스 시나리오의 실제 사례에서 시작하여 새 프로젝트부터 시작하여 도메인 기반 서비스 부서를 사용하는 방법, 서비스 거버넌스를위한 마이크로 서비스 프레임 워크를 사용하는 방법, 프로젝트가 완료된 후 마이크로 서비스 아키텍처의 성능을 향상시키는 방법을 점진적으로 설명합니다.
12 장 : 레거시 시스템의 마이크로 서비스 전환
이 장에서는 레거시 시스템의 마이크로 서비스 아키텍처 변환을 소개하고, 코드 레이어링 구조의 변환을 분류하고, 마이크로 서비스의 인기와 대중화에 대처하기위한 새로운 코드 레이어링 아이디어를 제안하고, 레거시 시스템의 결합을 깊이 고찰하고, 모노머에 대해 논의합니다. 시스템 분할 서비스의 방법론. 동시에 레거시 시스템의 마이크로 서비스 아키텍처 변환 솔루션에 대한 9 가지 실용적인 핵심 실용적인 아이디어가 제공됩니다.
13 장 : 서비스 메시 소개 및 사례
마이크로 서비스의 지속적인 개발과 함께 차세대 마이크로 서비스 아키텍처가 등장했습니다.이 장에서는 Service Mesh의 개발 프로세스를 심층적으로 소개하고 독자가 특정 사례에 따라 Istio를 사용하도록 유도합니다.
14 장 : 마이크로 서비스 모니터링 실제 전투
이 장에서는 APM의 원리에 초점을 맞추고 APM 모니터링 시스템을 처음부터 개발하며 Prometheus의 설치 및 원리, 모니터링 및 조기 경고를 위해 Prometheus를 사용하는 방법을 소개합니다.
이 [고 가용성 확장 가능한 마이크로 서비스 아키텍처 : Dubbo, Spring Cloud 및 ServiceMesh 기반]은 총 528 페이지로 구성되고 패키징되었습니다. 콘텐츠의 전체 버전이 필요한 친구는이 기사를 좋아하고 편집자를 팔로우 할 수 있습니다. 아래 직행 열차는 무료입니다. 얻다
요약하자면
이 기사의 각 장은 수년간의 기술 축적과 개선을 거쳐 관련 분야의 전문가들에 의해 작성되었으며, 이론을 바탕으로 많은 실제 엔터프라이즈 사례를 핵심으로하고 마이크로 서비스 아키텍처의 구현 방법과 구현 프로세스를 포괄적으로 소개합니다. 발생하는 문제와 해결책은 상세하고 "확보 가능한"이론과 실제를 결합한 기술 서적입니다.