0

My Cleint가 2 개의 인스턴스를 가지고 있고 큐의 이름을 바꾸기 위해 스 니펫을 사용하고 있습니다. testExchange.testQueue가 생성되었습니다. 2 명의 고객, 즉 클라이언트 인스턴스를 볼 수 있지만 while/버스/새로 고침 하나의 인스턴스가 새로 고쳐지고있는 것을 볼 수 있습니다. /버스/새로 고침 모든 인스턴스가 새로 고쳐 져야하는 클라우드 버스 기능을 사용하고 있지 않습니다. 큐를 바꾸려면 구성이 누락되면 알려주십시오. 읽을 수있는 형식.스프링 클라우드 버스, RenamingMQ 더 읽기 쉬운 방식으로

spring: 
cloud: 
    stream: 
    bindings: 
     springCloudBusInput: 
     destination: testExchange 
     group: testQueue 
    config: 
    bus: 
     enabled: true 
    uri: https://Config-Server-offshore.com/ 
    name: ClientApp 

답변

0

spring-cloud-stream을 사용하면 group을 사용하면 경쟁 대기열이 동일한 대기열에 생성됩니다.

group을 제거하면 각 인스턴스마다 자체 대기열이 생성됩니다. 클라우드 파운드리에서 실행중인 경우

당신은 ... ...이 고유하게 만들기 위해 그룹에서

spring.cloud.stream.bindings.input.group=${instanceIndex} 
instanceIndex=1 

을 장소 홀더를 사용할 수 있습니다, 당신은 VCAP 인스턴스 인덱스를 사용할 수 있습니다.

+0

그룹을 포함하면 클라우드 버스의 기능을 제공합니까? 어쨌든 우리는 대기열 이름 인 그룹을 하드 코딩하고 있기 때문에 모든 인스턴스가 동일한 대기열에 들어가서 다시 같은 대기열에 경쟁하는 소비자를 생성합니다. 내가 틀렸거나 인스턴스를 기반으로 다른 대기열을 만들려면 어떻게해야합니까? 어떻게 사용하기 전에 instanceIndex를 사용하지 않았습니까? –

+0

앞에서 말했듯이, 속성 place holder'$ {foo}'를 사용하고 클래스 경로의 속성 파일을 통해 각 인스턴스의 다른 값으로'foo' 속성을 설정할 수 있습니다. –