이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 55716|회답: 3

[출처] 【아키텍처】ASP.NET 코어는 Consul 서비스를 기반으로 매우 높은 가용성을 자랑합니다

[링크 복사]
2020-10-16 18:33:07에 게시됨 | | | |
인터넷 프로젝트 개발에서는 다양한 서비스와 상호작용해야 하며, 사용자는 서버로부터 데이터를 얻어야 하며, 서비스 인터페이스의 높은 가용성은 특히 전자상거래 및 결제 시스템에서 매우 중요합니다. 고가용성은 시스템의 견고성을 측정하기도 합니다. 클러스터의 경우, 많은 서비스가 유지보수가 어렵기도 합니다.

영사 검토

Consul은 HashiCorp에서 출시한 Go언어로 개발된 오픈소스 도구로, 분산 시스템의 서비스 발견 및 구성을 구현하는 데 사용되며, 내장된 서비스 등록 및 발견 프레임워크, 배포 일관성 프로토콜 구현, 건강 확인, 키/값 저장, 다중 데이터 센터 솔루션을 갖추고 있어 비교적 사용하기 쉽습니다.

[건축]. net/c#은 Consul을 기반으로 한 키/값 저장소의 분산 구성을 구현합니다
https://www.itsvse.com/thread-9420-1-1.html

아키텍처: ASP.NET Core는 Consul을 기반으로 동적으로 핫 업데이트를 구성합니다
https://www.itsvse.com/thread-9421-1-1.html


영사 서비스 발견

Consul Service Discovery 사용 방법:

  • 각 컴퓨터에서 클라이언트 모드로 Consul 에이전트를 실행하는데, 이는 최신 등록 정보를 Consul 클러스터와 효율적으로 교환하는 역할만 담당합니다(리더 선거에는 참여하지 않음).
  • 각 컴퓨터의 서비스 서비스는 서비스 이름과 URL을 로컬 컨설 에이전트에게 등록합니다
  • Computer1에 배포된 프로그램이 ServiceB를 호출해야 할 때, ServiceA는 서비스 이름을 통해 로컬 Consul Agent로부터 ServiceB의 접근 주소를 직접 얻고, 그 후 ServiceB의 URL로 직접 요청을 보냅니다.




코드는 다음과 같습니다:



스타트업 수업에서는 다음과 같이 호출하세요:



건강검진

건강 체크 인터페이스는 200 상태 코드를 영사관에게 반환하기만 하면 되며, 코드는 다음과 같습니다:



프로젝트를 시작하고, 서비스에 가입하세요

컨트롤러는 다음과 같이 테스트 방법을 정의할 수 있습니다:



프로젝트의 bin 디렉터리로 가서 명령줄로 시작해 봅시다. 코드는 다음과 같습니다:





브라우저에서 링크를 확인하세요:

http://127.0.0.1:8500/ui/dc1/services/test.itsvse



http://127.0.0.1:8500/v1/catalog/service/test.itsvse

json 데이터는 다음과 같습니다:

[
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "노드": "DESKTOP-EB7B69D",
        "주소": "127.0.0.1",
        "데이터센터": "dc1",
        "태그된 주소": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "노드메타": {
            "영사-네트워크 세그먼트": ""
        },
        "ServiceKind": ",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "서비스태그": [
            "테스트",
            "이츠브세"
        ],
        "서비스주소": "127.0.0.1",
        "ServiceWeights": {
            "패스": 1,
            "경고": 1
        },
        "ServiceMeta": {},
        "서비스포트": 8083,
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "MeshGateway": {},
            "폭로": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1317,
        "ModifyIndex": 1317
    },
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "노드": "DESKTOP-EB7B69D",
        "주소": "127.0.0.1",
        "데이터센터": "dc1",
        "태그된 주소": {
            "lan": "127.0.0.1",
            "wan": "127.0.0.1"
        },
        "노드메타": {
            "영사-네트워크 세그먼트": ""
        },
        "ServiceKind": ",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "서비스태그": [
            "테스트",
            "이츠브세"
        ],
        "서비스주소": "127.0.0.1",
        "ServiceWeights": {
            "패스": 1,
            "경고": 1
        },
        "ServiceMeta": {},
        "서비스포트": 8082,
        "ServiceEnableTagOverride": false,
        "ServiceProxy": {
            "MeshGateway": {},
            "폭로": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1314,
        "ModifyIndex": 1314
    }
]


영사 서비스 호출

다음 코드로 새로운 .NET Core 콘솔 프로젝트를 생성하세요:



무작위로 등록된 test.itsvse 서비스에 전화해봤는데, 결과는 다음과 같습니다:



마지막으로 소스 코드 다운로드:

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답




이전의:아키텍처: ASP.NET Core는 Consul을 기반으로 동적으로 핫 업데이트를 구성합니다
다음:DMP 파일 가져오기는 예외적입니다
2020-11-30 19:57:38에 게시됨 |
W174W174W174
2021-7-23 09:31:37에 게시됨 |
공유해 주셔서 감사합니다
2021-9-3 09:05:16에 게시됨 |
소프트웨어, 수만 통의 이메일을 가져오고, 죽음을 위조하지 않고, 멈추지 마세요!!
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com