분산 아키텍처를 Python에서 .NetCore로 옮깁니다. 이 아키텍처에는 요청을 서비스 버스 (KAFKA)에 푸시하는 게이트웨이 API가 있습니다. 요청은 Microservices에서 처리합니다. 이 마이크로 서비스는 요청 객체에 설정된 주제에 대해 게이트웨이에 응답 한 다음 클라이언트에 응답합니다. 주제 이름은 python 어플리케이션 (Flask/uwsgi)의 process_id를 기반으로 작성됩니다.메시징 시스템 (kafka/.NET)을 통한 요청 - 응답 전략
하지만 .NetCore Webapi 응용 프로그램을 사용하면 해당 프로세스에서 '주제'를 얻을 수있는 방법을 찾을 수 없습니다 (NetCore에서 시작). 마이크로 서비스 응답을 기다리는 동안 비동기 메소드를 사용하여 엔트리 포인트를 비우는 것은 어셈블리 ID의 종류에 따라 주제 이름을 생성하는 것이 가장 좋습니다. 그러나 모든 Asyc 메서드 호출은 다른 주제를 생성합니다. 맞습니까? 그것은 수많은 주제로 이어질 것입니다 ... 이상한 종류 ...
계속 진행하는 다른 방법이 있습니까?
MemoryCache를 사용하여 Microservices 및 게이트웨이 프로세스의 응답 사이의 통신을 래핑하는 것에 대해 생각하고 있습니다. (요청에는 메모리 캐시 액세스의 키로 사용되는 Guid가 포함됩니다). 어떻게 생각해?
왜 프로세스 ID를 계속 사용하지 않는가? '''''Processs = System.Diagnostics.Process.GetCurrentProcess();''' '''p.Id.ToString();''' – Martin
'작업'과 비동기 기능. NET에서. 파이썬과 프로세스 식별자에 대한 관심은 일단 시작되면 프로세스 ID가 변경되지 않는다는 것이 었습니다. 그런 다음 단일 프로세스가 항상 하나의 주제 만 관리 할 수 있습니다. .NET에서 잠재적 인 호출은 FetchClientResponseAsync()를 기다리는 것이 새로운 프로세스를 생성하여 새로운 주제로 이어질 것이라고 생각합니다. 다중 접근은 많은 화제로 이어질 것인데, 그다지 화제가되지 않는다. (가독성, 단지 1 개의 메시지 만 사용하는 주제 ...) – fredczj