资讯专栏INFORMATION COLUMN

Spring Cloud 参考文档(使用Sidecar支持多语言)

X_AirDu / 3446人阅读

摘要:使用支持多语言你是否有希望利用和的非语言的灵感来自,它包含一个,用于获取给定服务的所有实例按主机和端口。要在项目中包含,请使用组为和工件的依赖项。

使用Sidecar支持多语言

你是否有希望利用Eureka、Ribbon和Config Server的非JVM语言?Spring Cloud Netflix Sidecar的灵感来自Netflix Prana,它包含一个HTTP API,用于获取给定服务的所有实例(按主机和端口)。你还可以通过嵌入式Zuul代理代理服务调用,该代理从Eureka获取其路由条目,可以通过主机查找或Zuul代理直接访问Spring Cloud Config Server,非JVM应用程序应实现健康检查,以便Sidecar可以向Eureka报告应用程序是启动还是关闭。

要在项目中包含Sidecar,请使用组ID为org.springframework.cloud和工件IDspring-cloud-netflix-sidecar的依赖项。

要启用Sidecar,请使用@EnableSidecar创建Spring Boot应用程序,此注解包括@EnableCircuitBreaker@EnableDiscoveryClient@EnableZuulProxy,在与非JVM应用程序相同的主机上运行生成的应用程序。

要配置Sidecar,请将sidecar.portsidecar.health-uri添加到application.ymlsidecar.port属性是非JVM应用程序侦听的端口,这样Sidecar可以正确地向Eureka注册应用程序,sidecar.health-uri是可在非JVM应用程序上访问的URI,它模仿Spring Boot健康指示器,它应该返回类似于以下内容的JSON文档:

health-uri-document

{
  "status":"UP"
}

以下application.yml示例显示了Sidecar应用程序的示例配置:

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

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

DiscoveryClient.getInstances()方法的API是/hosts/{serviceId},以下针对/hosts/customers的示例响应返回在不同主机上的两个实例:

/hosts/customers

[
    {
        "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。

Zuul代理自动将Eureka中已知的每个服务的路由添加到/,因此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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74268.html

相关文章

  • Dubbo开源现状与未来规划

    摘要:今天的话题是与的开源现状和未来规划,我们知道,过去一段时间疏于维护,去年阿里高调宣布重启开源之后,社区里问的最多的问题是,这次开源与上次有什么一样,还有就是和是什么关系希望通过这次的分享能够解答这些问题。 摘要: Dubbo 在过去一段时间疏于维护,去年阿里高调宣布重启 Dubbo 开源之后,社区里问的最多的问题是,这次开源与上次有什么一样,还有就是 Dubbo 和 Spring Bo...

    zhoutao 评论0 收藏0
  • Spring Cloud 参考文档(重试失败的请求)

    摘要:当存在时,负载均衡的和会自动重试任何失败的请求假设你的配置允许这样做。启用包括重试请求,由于请求的缓冲,请求会对服务器的资源产生影响。 重试失败的请求 Spring Cloud Netflix提供了多种方式来发出HTTP请求,你可以使用负载均衡的RestTemplate、Ribbon或Feign。无论你如何选择创建HTTP请求,总是有可能请求失败,请求失败时,你可能希望自动重试请求,要...

    BakerJ 评论0 收藏0
  • 部署微服务:Spring Cloud vs. Kubernetes

    摘要:而微服务架构能否成功实践,利用各种工具解决潜在问题是关键。因此,微服务本身可以通过库和运行时代理解决客户端服务发现负载均衡配置更新统计跟踪等。与相比,解决了更广的微服务架构问题。和处理了不同范围的微服务架构技术点,而且是用了不同的方法。 Spring Cloud vs. Kubernetes,谁才是部署微服务的最佳拍档? Spring Cloud和Kubernetes都声称自己是开发和...

    YanceyOfficial 评论0 收藏0
  • 腾讯开源百万级服务发现和治理中心北极星

    摘要:第三种是以为代表的服务网格,通过劫持业务请求的方式实现服务发现和治理。服务网格对于上述服务发现和治理功能,北极星提供统一的控制面和数据面。腾讯业务线众多,开发语言和框架也众多,北极星数据面支持多语言和两种模式。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overf...

    Neilyo 评论0 收藏0
  • 微服务应用新趋势:Service Mesh、AIOps和中台化

    摘要:目前,网易云轻舟微服务平台已经应用于银行证券视频监控物流工业等行业不少中大型企业,帮助其实施微服务化改造,建设符合行业特点的业务中台,支撑企业数字化战略的落地。 微服务技术由于天生支持快速迭代、弹性扩展的特点,使企业能够在不确定性下提升发展速度及抗风险能力,受到了越来越多的关注。当前,云服务商纷纷试水微服务产品,最为典型的,当属推出轻舟微服务平台、剑指整个微服务应用生命周期的网易云。 ...

    tunny 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<