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