2017-03-02 3 views
2

나는 그것에 유레카 서비스 레지스트리와 등록 된 서비스를 만들었습니다. 현재 하나의 서비스 인스턴스 만 실행 중입니다. 동일한 서비스의 인스턴스를 여러 개 추가하는 방법은 무엇입니까? 독립형 응용 프로그램을 개발 중입니다. 그리고 Rest Template을 통해 서비스에 액세스하고 있습니다. 나는 다음과 같이 말합니다. https://spring.io/guides/gs/service-registration-and-discovery/유레카 서비스 레지스트리에 등록 된 여러 유레카 서비스 인스턴스를 만드는 방법은 무엇입니까?

+0

단순히 체하다 사용하는 경우 – Kane

답변

2

일단 유레카 피어 인식에 관한 공식 봄 구름 documentation이 있으면 확실히 다른 유레카 인스턴스가 필요합니다.

간단히 말해서 각각의 application.yml에서 서로에 대한 정보를 추가하여 서로를 인식하게해야합니다. 희망이 도움이됩니다. 자세한 내용은 doc을 읽으십시오. 다른 링크의

--- 
spring: 
    profiles: peer1 
eureka: 
    instance: 
    hostname: peer1 
    client: 
    serviceUrl: 
     defaultZone: http://peer2/eureka/ 

--- 
spring: 
    profiles: peer2 
eureka: 
    instance: 
    hostname: peer2 
    client: 
    serviceUrl: 
     defaultZone: http://peer1/eureka/ 

커플 유레카 github Issue, Understanding Spring Cloud Eureka Server self preservation and renew threshold에 대해 배울 수 있습니다. 희망이 도움이됩니다.

0

각 인스턴스는 일반적으로 사용 application.yml 구성, 독특한 instanceId이 필요합니다 :

... 
eureka: 
    instance: 
    metadataMap: 
     instanceId: ${spring.application.name}:${server.port} 
... 

는 동일한 호스트에 여러 인스턴스를 실행할 수 있습니다 instanceId에 포트를 추가.

인스턴스가 수신하는 포트 대신 임의의 번호를 추가하는 것도 보았습니다.

내가 최근 http://tech.asimio.net/2016/11/14/Microservices-Registration-and-Discovery-using-Spring-Cloud-Eureka-Ribbon-and-Feign.html

그리고에 첨부 된 소스 코드와 함께 Jersey, Spring, Eureka, RibbonFeign를 사용하여 서비스 등록 및 발견에 대해 블로그에 등록하고 서비스의 여러 버전을 발견하는 방법은 EurekaRibbon 사용에 대한 블로그 http://tech.asimio.net/2017/03/06/Multi-version-Service-Discovery-using-Spring-Cloud-Netflix-Eureka-and-Ribbon.html에 있습니다. 당신이 동일한 호스트에 하나 개의 서비스의 여러 인스턴스를 실행하는 것을 목표로하는 경우

+0

쿨, 좋은 기사, 그래서 demo- "의 두 인스턴스를 같은 서비스에 대한 하나 개 이상의 인스턴스가 상상 유레카 클라이언트 응용 프로그램의 다른 인스턴스를 실행 api-1 ") 주석을 사용하면,이 두 인스턴스 서비스는 소비 될 것인가? –

+0

@LipingHuang 맞다. – ootero

+0

고마워, 그럼. 이 사이에 균형이 맞습니까? 그렇지 않으면 중복 된 호출입니다. –

0

, 당신은해야 임의의 숫자

  • 구성 서비스에

    1. 구성 유레카 인스턴스 ID가 임의의 포트 번호를 사용

    이 두 항목은 개별적으로 구성해야합니다 (예 :

    eureka: 
        instance: 
        instance-id: ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}} 
    

    server: 
        port: 0