首页 > 解决方案 > 没有 Spring 的 Java 应用程序上的 Eureka Server

问题描述

我有 java 应用程序(没有 Spring 或 Spring Boot),其中服务器通过调用此方法启动:

 public void startServer() {
        com.sun.net.httpserver.HttpServer server = JdkHttpServerFactory.createHttpServer(address, resourceConfig, false);
        logger.info("HTTP: Start Http-Server. Adress: %s", address);
        server.start();
    }

我希望这个应用程序充当Eureka Server. Eureka Clients将是 Spring 服务,因此我可以配置它们。

我看过很多教程如何使用 Spring 应用程序设置 Eureka Server,但我不知道如何使用非 Spring 应用程序实现它?

我是否必须在端点下手动添加到 Eureka 服务器? https://github.com/Netflix/eureka/wiki/Eureka-REST-operations

标签: javanetflix-eureka

解决方案


Eureka Server 在 Web 应用程序中实现为 Jersey REST 端点。它可以作为 WAR 部署在任何 servlet 容器上:Tomcat、JBoss、Jetty 等。

您可以从https://github.com/Netflix/eureka/eureka-server的代码构建 WAR 。

但是您使用的 Java HTTP Server 不支持 servlet API,因此您不能只向其中添加 WAR。

  • 选项 1:在独立的 Tomcat/Jetty/... 上将其作为单独的进程运行
  • 选项 2:在主类中添加嵌入式 Tomcat 或 Jetty(就像 Spring Boot 一样)。
  • 选项 3:尝试弄清楚如何在您的 HTTP 服务器中映射 Jersey REST 端点?

推荐阅读