没有 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 ServerEureka Clients 将是 Spring 服务,因此我可以对其进行配置。

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

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

解决方法

Eureka 服务器在 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 端点?