非 JVM 应用接入
如果应用是 非JVM 的语言,我们可以采用 Sidecar 的方式将应用接入 Eureka Server。

增加健康检查接口
因为 Eureka Server 需要对应用进行 健康检查,必须为代理的应用增加一个 Restful 的 健康检查 接口,此接口需要返回一个 JSON 对象,必须要包含 status 字段。
{
  "status": "UP"
}
status 可设定为 2 个值 UP,DOWN。如果设置为其他的值,在 Eureka Server 上会显示为 UNKOWN,可参考附录 2
新建 Sidecar 项目
- 使用 start.spring.io 快速创建一个 Spring Boot应用
- 增加 Sidecar依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-netflix-sidecar</artifactId>
    <version>${NETFLIX_SIDECAR_VERSION}</version>
</dependency>
修改 Sidecar 项目配置
修改 application.yml 文件
server:
  port: ${YOUR_SERVER_PORT}
spring:
  application:
    name: ${YOUR_SIDECARD_APPLICATION_NAME}
sidecar:
  # 代理应用的端口号
  port: 8000
  # 监控检查的地址: http://localhost:8000/health.json
  health-uri: ${YOUR_HEALTH_URI}
eureka:
  client:
    serviceUrl:
      defaultZone: ${YOUR_EUREKA_ADDRESS}
部署 Sidecar
Sidecar 仅支持与应用部署在同一层网络,也就是 Sidecar 仅仅支持通过 localhost 的方式对代理的应用进行访问。
- 虚拟机部署:Sidecar与App部署在同一台虚拟机中
- 容器云平台部署:Sidecar与App部署在同一个容器组(Pod)中