Spring Cloud 參考文檔(使用Sidecar支持多語言)

使用Sidecar支持多語言

你是否有但願利用Eureka、Ribbon和Config Server的非JVM語言?Spring Cloud Netflix Sidecar的靈感來自Netflix Prana,它包含一個HTTP API,用於獲取給定服務的全部實例(按主機和端口)。你還能夠經過嵌入式Zuul代理代理服務調用,該代理從Eureka獲取其路由條目,能夠經過主機查找或Zuul代理直接訪問Spring Cloud Config Server,非JVM應用程序應實現健康檢查,以便Sidecar能夠向Eureka報告應用程序是啓動仍是關閉。git

要在項目中包含Sidecar,請使用組ID爲org.springframework.cloud和工件IDspring-cloud-netflix-sidecar的依賴項。github

要啓用Sidecar,請使用@EnableSidecar建立Spring Boot應用程序,此註解包括@EnableCircuitBreaker@EnableDiscoveryClient@EnableZuulProxy,在與非JVM應用程序相同的主機上運行生成的應用程序。spring

要配置Sidecar,請將sidecar.portsidecar.health-uri添加到application.ymlsidecar.port屬性是非JVM應用程序偵聽的端口,這樣Sidecar能夠正確地向Eureka註冊應用程序,sidecar.health-uri是可在非JVM應用程序上訪問的URI,它模仿Spring Boot健康指示器,它應該返回相似於如下內容的JSON文檔:json

health-uri-document服務器

{
  "status":"UP"
}

如下application.yml示例顯示了Sidecar應用程序的示例配置:app

server:
  port: 5678
spring:
  application:
    name: sidecar

sidecar:
  port: 8000
  health-uri: http://localhost:8000/health.json

DiscoveryClient.getInstances()方法的API是/hosts/{serviceId},如下針對/hosts/customers的示例響應返回在不一樣主機上的兩個實例:ide

/hosts/customersui

[
    {
        "host": "myhost",
        "port": 9000,
        "uri": "http://myhost:9000",
        "serviceId": "CUSTOMERS",
        "secure": false
    },
    {
        "host": "myhost2",
        "port": 9000,
        "uri": "http://myhost2:9000",
        "serviceId": "CUSTOMERS",
        "secure": false
    }
]

非JVM應用程序(若是sidecar在端口5678上)能夠在http://localhost:5678/hosts/{serviceId}訪問此API。url

Zuul代理自動將Eureka中已知的每一個服務的路由添加到/<serviceId>,所以customers服務可在/customers處得到,非JVM應用程序能夠訪問位於http://localhost:5678/customers的customer服務(假設sidecar正在偵聽端口5678)。代理

若是配置服務器已在Eureka中註冊,則非JVM應用程序能夠經過Zuul代理訪問它,若是ConfigServer的serviceIdconfigserver且Sidecar在端口5678上,則能夠在http://localhost:5678/configserver上訪問它。

非JVM應用程序能夠利用Config Server返回YAML文檔的能力,例如,調用http://sidecar.local.spring.io:5678/configserver/default-master.yml可能會致使YAML文檔相似於如下內容:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  password: password
info:
  description: Spring Cloud Samples
  url: https://github.com/spring-cloud-samples

要在使用HTTPs時將健康檢查請求設置爲接受全部證書,請將sidecar.accept-all-ssl-certificates設置爲true

相關文章
相關標籤/搜索