微服务未在所有 Eureka 实例上注册

2023-11-30

Spring Boot版本:2.1.6.RELEASE

Spring Cloud版本:Greenwich.SR1

目标是在集群中设置两个Eureka Server实例,并将所有微服务注册到两个实例上,以实现HA。目前我正在运行 Ubuntu 18.04 的本地计算机上对此进行测试。

所以正如官方文档中提到的,我已经设置了Eureka实例的点对点感知。启动两个 Eureka 服务器实例后,在可用副本下的 Instance-1(端口 8080)仪表板上显示 Instance-2 名称,在 Instance-2(端口 8081)仪表板上显示 Instance-1 名称。到目前为止,一切都很好。

我已将它们作为 war 部署在外部 tomcat 服务器上,而不是作为 jar 运行它们。战争名称是“eureka-naming-server”。那么我的访问URL就变成了:http://localhost:8080/eureka-naming-server/eureka and http://localhost:8081/eureka-naming-server/eureka.

我已经使用 Apache 2 和 mod_jk 设置了一个负载平衡器。因此,不要使用它们各自的 URL 来访问它们,即http://localhost:8080/eureka-naming-server/eureka, http://localhost:8081/eureka-naming-server/eureka,我可以使用 Apache URL 访问它们http://localhost:80/eureka-naming-server/eureka我可以看到负载平衡正常进行。

现在的问题是,一旦我将 Eureka URL 指定为http://localhost:80/eureka-naming-server/eureka在微服务中,它仅在一个实例上注册,具体取决于负载均衡器重定向请求的 Eureka 实例。但即使设置了对等感知,微服务也没有在另一个尤里卡实例上注册。

在 Eureak 服务器中,我使用以下依赖项:

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

Eureka-1 道具:

spring:
  application:
    name: eureka-naming-server
  jmx:
    default-domain: eureka-naming-server
eureka:
  client:
    service-url:
      defaultZone: http://eureka-server-2:8081/eureka-naming-server/eureka

    #register-with-eureka: false
    #fetch-registry: false
  instance:
    hostname: eureka-server-1

Eureka-2 道具:

spring:
  application:
    name: eureka-naming-server
  jmx:
    default-domain: eureka-naming-server
eureka:
  client:
    service-url:
      defaultZone: http://eureka-server-1:8080/eureka-naming-server/eureka

    #register-with-eureka: false
    #fetch-registry: false
  instance:
    hostname: eureka-server-2

在微服务中,我使用以下依赖项:

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

微服务道具:

eureka:
  instance:
    metadata-map:
      configPath: /config
  client:
    service-url:
      defaultZone: http://localhost/eureka-naming-server/eureka

在机器的 /etc/hosts 文件中,我将其设置为:

127.0.0.1 eureka-server-1

127.0.0.1 eureka-server-2

我可以在日志中看到以下内容:

WARN 13748 --- [nio-8009-exec-3] Registered instance CONFIG-SERVER/192.168.1.16:config-server:8888 with status UP (replication=false)

另一个未注册的 Eureka 实例,当它由于负载均衡器而收到心跳时,会在日志中显示以下内容:

WARN 13748 --- [nio-8009-exec-3] c.n.e.registry.AbstractInstanceRegistry  : DS: Registry: lease doesn't exist, registering resource: CONFIG-SERVER - 192.168.1.16:config-server:8888
2019-12-26 19:00:34.995  WARN 13748 --- [nio-8009-exec-3] c.n.eureka.resources.InstanceResource    : Not Found (Renew): CONFIG-SERVER - 192.168.1.16:config-server:8888

Eureka-1 仪表板

enter image description here

Eureka-2 仪表板

enter image description here

我已经尝试过提到的建议here and here。但似乎没有任何作用。

那么我在这里可能会错过什么?


Issue:

spring:
  application:
    name: eureka-naming-server

您为应用程序输入相同的名称,因此它的显示如下。

你需要将其更改为

Eureka-1 道具:

spring:
  application:
    name: eureka-naming-server-1

Eureka-2 道具:

spring:
  application:
    name: eureka-naming-server-2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微服务未在所有 Eureka 实例上注册 的相关文章

随机推荐

  • Cakephp生成xml错误-空格

    我正在尝试在 CakePHP 中生成动态 xml 文档以输出到浏览器 这是我的控制器代码 Configure write debug 0 this gt layout null header Content type text xml ec
  • 使用 itextpdf 时,横向和纵向 PDF 的页面大小始终相同

    我有一个 PDFReader 其中包含一些横向模式的页面和其他纵向模式的页面 我需要区分它们以进行一些处理 但是 如果我调用 getOrientation 或 getPageSize 则该值始终相同 页面大小为 595 方向为 0 为什么横
  • CSS 中的装饰艺术风格边框

    我希望使用纯 CSS 来实现这种边框效果 我的偏好是在不添加额外的 div 元素的情况下实现它 任何建议 将不胜感激 编辑 固定图像描述 你可以像下面这样做 box width 150px height 200px border 15px
  • Android:从网页获取 HTML 作为字符串,HttpClient 不起作用

    我正在编写一个使用 HttpClient 连接到网页的应用程序 目的是能够将网页的一些 HTML 复制到字符串中 我尝试使用 HttpClient 连接来完成此任务 这是我使用的代码 public void getText final Te
  • 在不同 DPI 下使用 GetWindowRect 的坐标误差

    我想捕获 MFC 程序中组件的坐标 现在我可以通过使用完美地完成这个GetWindowRect 但是 当我将 Windows dpi 设置为 150 120 dpi 时 我得到的坐标不同GetWindowRect 因此 我研究了一些将新坐标
  • Ruby OpenSSL 嵌套 asn1 错误

    我已经尝试过针对此处发布的几个问题的建议 但无济于事 我有以下文件 注意 我即时生成了这些文件 它们是一次性密钥 证书文件 BEGIN CERTIFICATE MIIE jCCA KgAwIBAgIJAMLMeL HH75vMA0GCSqG
  • 将 smarty 数组转换为 javascript 数组

    我有一个聪明的数组 promoFormData Smarty Variable Object 3 gt value Array 1 deliveryDates gt Array 3 0 gt Array 2 startDate gt 201
  • 画布 toDataUrl 的跨源访问失败

    我想创建一个小页面 人们可以在其中创建万花筒 我使用可用的脚本并添加了一些图像浏览和保存功能 现在 我在将生成的画布数据保存为图像时遇到了一个奇怪的问题 火狐控制台说 SecurityError 操作不安全 调用失败 Canvas2Imag
  • 在服务类中显示 ProgressDialog

    我正在使用服务通过 AsyncTask 连接到网络 我想显示一个 ProgressDialog 直到应用程序连接到网络 但我该怎么做呢 我的服务如下所示 package de bertrandt bertrandtknx import tu
  • Paypal 表单破坏了我的 ASP.NET webforms 布局 -> 如何解决?

    I am a student who is doing up a simple website in asp net My problem is I wish to integrate Paypal on one of the pages
  • 用于密码验证的正则表达式 Java

    我正在创建一个用于密码验证的正则表达式 以在 Java 应用程序中用作配置参数 正则表达式是 8 0 9 a z A Z 密码策略是 至少 8 个字符 至少包含一位数字 至少包含 1 个下位字母字符和 1 个上位字母字符 一组特殊字符中至少
  • SQL 查找最受欢迎的类别

    我的数据库 MySQL 中有 3 个表 categories name string items name string category id int votes value int item id int created at date
  • 如何在 r 中编写函数来对记录进行计算?

    在 C 中 我习惯了数据集和当前记录的概念 对我来说 根据当前记录的条件编写一个复杂的计算价格函数是很容易的 我无法理解如何在 r 中执行此操作 我尝试了以下方法 train lt read csv Train csv df lt as d
  • Angular.js 中的单选按钮和文本字段

    使用 AngularJS 我想创建一个带有单选按钮的选项列表 最后一个按钮有一个标记为 其他 的空文本字段 用于输入不在列表中的选项 这是我的想法的演示在 CodePen 中引导 由于 Stack Overflow 坚持在此消息中包含 Co
  • 使用 PHP 和 cURL 登录 Pinterest 无法正常工作

    在过去的 17 个小时里 我一直在尝试让 cURL 登录 pinterest com 尝试了无数种不同的方法 但它根本不起作用 我当前的代码仅进入该页面 但未发布数据 因此它不会登录 只是将我带到登录页面 第一个代码使用 USERPWD 它
  • 如何开始编写或创建 Leap Motion 应用程序? (Python)

    我试过用谷歌搜索这个 但这是很多我不一定完全理解的编程谈话 到目前为止我所做的就是下载Leap Motion的SDK 发现可以用python编写程序 这是我有点熟悉的编程语言 从 SDK 上的示例来看 它似乎需要一个模块来开始编写 这意味着
  • Spring:应用程序+Web上下文应该如何组织?

    场景 启动应用程序并加载ClassPathXmlApplicationContext在 main 中 这会启动一个 Jetty Web 应用程序 然后调度程序 servlet 加载XmlWebApplicationContext 然后调度程
  • 如何在Android框架中打印日志消息

    我正在尝试打印核心 Android 框架文件中的日志消息 例如 我尝试在其中记录消息MediaRecorderClient cpp under frameworks base media libmediaplayerservice 我试过了
  • 用于比较文本文件内容的批处理文件

    我有两个文本文件 其中包含以下数字 File1 00000 11111 File2 00000 11111 22222 我需要一个代码来比较 file2 和 file1 的内容以及不匹配的数字 在这种情况下 22222 是 file2 中的
  • 微服务未在所有 Eureka 实例上注册

    Spring Boot版本 2 1 6 RELEASE Spring Cloud版本 Greenwich SR1 目标是在集群中设置两个Eureka Server实例 并将所有微服务注册到两个实例上 以实现HA 目前我正在运行 Ubuntu