해당 작업 스레드 / 작업으로 메시지 리디렉션

나는 TChebur입니다

저는 Kafka와 함께 일하고 있으며 원하는 모든 주제를 구독하는 단일 소비자를 구현하려고합니다. 3 개의 주제 (A, B, C)가 있다고 가정 해 보겠습니다. 각 주제의 메시지를 동 기적으로 처리하지만 주제간에 병렬로 처리하는 방법입니다. 따라서 A 주제의 경우 메시지를 하나씩 처리해야하지만 동시에 다른 주제의 메시지를 하나씩 처리해야합니다.

각 주제에 대해 별도의 스레드가 필요한 것 같습니다. 어떻게 구현할 수 있는지 조언 해 주시겠습니까? 이에 대한 준비된 해결책이 있습니까? 내 소비자는

while (!cancellationToken.IsCancellationRequested)
{
    ConsumeResult<string, string> consumeResult = _consumer.Consume(cancellationToken);

    ... processing here

    _consumer.Commit(consumeResult);
}

아직 C #에서 asnyc에 대한 경험이 없기 때문에 구현 방법을 모르겠습니다. Reactive Extensions https://gist.github.com/omnibs/6b2cbdba2685693448ee6779736a00c2 와 같은 것을 찾았습니다 .

메시지를 받으면 해당 작업 스레드 / 작업으로 메시지를 리디렉션하는 방법은 무엇입니까?

Confluent.Kafka 1.3.0 패키지를 사용하여 Kafka 작업

로만 마루 시크
var channels = new Dictionary<string, ActionBlock<ConsumeResult<string, string>>>();
foreach (var topic in _consumer.Subscription)
{
    channels.Add(topic, new ActionBlock<ConsumeResult<string, string>>(async consumeResult =>
    {
        ... processing here
        _consumer.Commit(consumeResult);
    }, new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 1 }));
}

이 코드는 구독하는 모든 주제에 대해 ActionBlock생성 합니다.

그런 다음 메시지를 받으면 해당 채널로 리디렉션하십시오.

while (!cancellationToken.IsCancellationRequested)
{
   ConsumeResult<string, string> consumeResult = _consumer.Consume();
   await channels[consumeResult.Topic].SendAsync(consumeResult);
}

@PauloMorgado 답변에서 기사 읽기

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NgRx가 loginSuccess 작업시 대시 보드로 리디렉션

분류에서Dev

작업 메서드가 .net-core-mvc 앱의 jQuery.post를 통해 리디렉션되지 않습니다.

분류에서Dev

해당 파일 또는 디렉토리 없음-Open Shift에서 업로드시 오류 메시지

분류에서Dev

경로 문제 ASP.net MVC 4가 인덱스 작업으로 리디렉션되지 않음

분류에서Dev

git reset으로 인해 작업 디렉토리와 스테이지가 모두 변경됩니다.

분류에서Dev

작업자 스레드에서 비동기 메시지 처리

분류에서Dev

작업 페이지에서 PHP POST 메서드 양식 리디렉션

분류에서Dev

apt 업그레이드 : 작업 실행 실패 : 해당 파일 또는 디렉터리가 없습니다.

분류에서Dev

한 작업에서 다른 작업으로 리디렉션 할 때 Yii2 세션 지속성

분류에서Dev

작업 디렉토리에서 작업을로드 하시겠습니까?

분류에서Dev

양식 작업을 통해 .php 파일로 리디렉션이 작동하지 않음 (초보자 Questio ..)

분류에서Dev

'async'작업을 시작한 스레드를 종료하면 해당 작업을 종료합니까?

분류에서Dev

제출시 동일한 PHP 파일의 다른 작업으로 드롭 다운 옵션으로 리디렉션하는 방법은 무엇입니까?

분류에서Dev

Swift 3 업그레이드시 "컬렉션 해당 ..."오류

분류에서Dev

사용자 지정 IHttpHandler에서 컨트롤러 작업으로 리디렉션

분류에서Dev

일치하지 않는 컨트롤러에 대한 기본 작업 및 URL의 작업으로 리디렉션

분류에서Dev

일치하지 않는 컨트롤러에 대한 기본 작업 및 URL의 작업으로 리디렉션

분류에서Dev

laravel 컨트롤러 작업으로 리디렉션-작업이 정의되지 않았습니다.

분류에서Dev

경로로 리디렉션되지 않는 양식 작업

분류에서Dev

nginx를 사용하여 레거시 URL을 해시가 필요한 Angular 앱으로 리디렉션 / 재 작성

분류에서Dev

GitHub 작업 (및 GitHub 패키지 레지스트리)으로 빌드 및 게시 프로세스 자동화

분류에서Dev

메시지를 해당 LUIS 앱으로 리디렉션하는 방법

분류에서Dev

프로세스의 현재 작업 디렉토리에 해당하는 마운트 지점을 찾는 방법은 무엇입니까?

분류에서Dev

C #의 작업에서보기 페이지로 리디렉션

분류에서Dev

작업을 가져 오는 동안 Spring 게시물이 액세스 거부로 리디렉션됩니다.

분류에서Dev

실시간으로 디렉토리 수를 백그라운드 작업자 진행 상황에보고하려면 어떻게해야합니까?

분류에서Dev

시작 화면, 메인 페이지로 리디렉션

분류에서Dev

13.10으로 업그레이드 한 후 다시 시작이 세션 표시기 메뉴로 돌아갑니다.

분류에서Dev

HTML은 리디렉션 업로드 PHP에서 방지

Related 관련 기사

  1. 1

    NgRx가 loginSuccess 작업시 대시 보드로 리디렉션

  2. 2

    작업 메서드가 .net-core-mvc 앱의 jQuery.post를 통해 리디렉션되지 않습니다.

  3. 3

    해당 파일 또는 디렉토리 없음-Open Shift에서 업로드시 오류 메시지

  4. 4

    경로 문제 ASP.net MVC 4가 인덱스 작업으로 리디렉션되지 않음

  5. 5

    git reset으로 인해 작업 디렉토리와 스테이지가 모두 변경됩니다.

  6. 6

    작업자 스레드에서 비동기 메시지 처리

  7. 7

    작업 페이지에서 PHP POST 메서드 양식 리디렉션

  8. 8

    apt 업그레이드 : 작업 실행 실패 : 해당 파일 또는 디렉터리가 없습니다.

  9. 9

    한 작업에서 다른 작업으로 리디렉션 할 때 Yii2 세션 지속성

  10. 10

    작업 디렉토리에서 작업을로드 하시겠습니까?

  11. 11

    양식 작업을 통해 .php 파일로 리디렉션이 작동하지 않음 (초보자 Questio ..)

  12. 12

    'async'작업을 시작한 스레드를 종료하면 해당 작업을 종료합니까?

  13. 13

    제출시 동일한 PHP 파일의 다른 작업으로 드롭 다운 옵션으로 리디렉션하는 방법은 무엇입니까?

  14. 14

    Swift 3 업그레이드시 "컬렉션 해당 ..."오류

  15. 15

    사용자 지정 IHttpHandler에서 컨트롤러 작업으로 리디렉션

  16. 16

    일치하지 않는 컨트롤러에 대한 기본 작업 및 URL의 작업으로 리디렉션

  17. 17

    일치하지 않는 컨트롤러에 대한 기본 작업 및 URL의 작업으로 리디렉션

  18. 18

    laravel 컨트롤러 작업으로 리디렉션-작업이 정의되지 않았습니다.

  19. 19

    경로로 리디렉션되지 않는 양식 작업

  20. 20

    nginx를 사용하여 레거시 URL을 해시가 필요한 Angular 앱으로 리디렉션 / 재 작성

  21. 21

    GitHub 작업 (및 GitHub 패키지 레지스트리)으로 빌드 및 게시 프로세스 자동화

  22. 22

    메시지를 해당 LUIS 앱으로 리디렉션하는 방법

  23. 23

    프로세스의 현재 작업 디렉토리에 해당하는 마운트 지점을 찾는 방법은 무엇입니까?

  24. 24

    C #의 작업에서보기 페이지로 리디렉션

  25. 25

    작업을 가져 오는 동안 Spring 게시물이 액세스 거부로 리디렉션됩니다.

  26. 26

    실시간으로 디렉토리 수를 백그라운드 작업자 진행 상황에보고하려면 어떻게해야합니까?

  27. 27

    시작 화면, 메인 페이지로 리디렉션

  28. 28

    13.10으로 업그레이드 한 후 다시 시작이 세션 표시기 메뉴로 돌아갑니다.

  29. 29

    HTML은 리디렉션 업로드 PHP에서 방지

뜨겁다태그

보관