非 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)中