如上所述,我部署了2个Eureka Server实例,但是在运行了大约19-20个小时后,一个Eureka Server实例总是宕机。为什么会发生这种情况?我使用top命令检查了运行的进程,发现Eureka服务器占用了大量内存。在Eureka服务器上需要配置什么才能不占用大量内存?
下面是Eureka Server的application.properties文件中的配置:
spring.application.name=eureka-server
eureka.instance.appname=eureka-server
eureka.instance.instance-id=${spring.application.name}:${spring.application.instance_id:${random.int[1,999999]}}
eureka.server.enable-self-preservation=false
eureka.datacenter=AWS
eureka.environment=STAGE
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
下面是我用来启动Eureka服务器实例的命令。
#!/bin/bash
java -Xms128m -Xmx256m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=stage -Dserver.port=9011 -Deureka.instance.prefer-ip-address=true -Deureka.instance.hostname=example.co.za -Deureka.client.serviceUrl.defaultZone=http://example.co.za:9012/eureka/ -jar eureka-server-1.0.jar &
java -Xms128m -Xmx256m -Xss256k -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=stage -Dserver.port=9012 -Deureka.instance.prefer-ip-address=true -Deureka.instance.hostname=example.co.za -Deureka.client.serviceUrl.defaultZone=http://example.co.za:9011/eureka/ -jar eureka-server-1.0.jar &
我对所有这些都是新手,任何帮助或指导都会是很大的帮助。
让我试着一一回答你的问题。
更新(最后一分钟)是预期的24。但更新阈值始终为0。当自我保护被打开时,这是应该的吗?在这种情况下,预期的行为是什么?如果这是一个问题,如何解决?
我可以看到eureka.server.enable-selfpreservation=false
在您的配置中,如果您希望在已经注册的应用程序未能续订租约时立即删除该应用程序,则确实需要这样做。
您没有eureka.instance.leaserenewalintervalinseconds
,因此默认值为30s和eureka.client.registerwitheureka=false
所以续约(最后一分钟)将是24
您没有配置revential-percent-threshold
,因此默认值为0.85每分钟每个应用程序实例的续订次数=2(每个30秒)
Eureka服务器的一个实例总是宕机。为什么会发生这种情况?
我暂时不能回答这个问题,这可能是因为多种原因。你可以从日志中找到原因,或者如果你可以在这里发布日志,那就太好了。
在Eureka服务器上需要配置什么才能不占用大量内存?
据我所知,除了确保实例可以相互通信之外,没有什么是专门针对AWS的。
尤里卡服务器2:
我已经在GitHub上启动了一个简单的项目。它基本上是一个Eureka服务器(阿基米德)和三个Eureka客户端微服务(一个公共API和两个私有API)。查看GitHub的自述文件获得详细描述。 关键是,当一切都在运行时,我希望如果一个私有微服务被杀死,那么Eureka服务器会发现并从注册表中删除它。 我在Stackoverflow上发现了这个问题,通过在Eureka服务器配置中使用解决了这个问题
我有一个简单的eureka服务器,配置简单(这个服务器用于开发和本地测试,spring-boot-starter 1.5.4版本,eureka 1.3.4)。 它有以下配置(没有其他特殊配置):
问题内容: 我已经开始开发微服务,尽管我已经研究了一段时间,同时阅读了Spring的文档和Netflix的文档。 我已经开始在Github上进行一个简单的项目。它基本上是一个Eureka服务器(Archimedes)和三个Eureka客户端微服务(一个公共API和两个私有)。查看github的自述文件以获取详细描述。 关键是,当一切都运行时,我希望如果某个私有微服务被杀死,Eureka服务器会意识
我有一个本地eureka服务器和一个客户端 RetryableEurekaHttpClient:请求执行失败DiscoveryClient:DiscoveryClient_MW/192.168.0.100:Client:8080-无法发送心跳! com.netflix.discovery.shared.transport.transportException:无法在任何已知服务器上执行请求 在《原
我有一个Eureka服务器A和两个客户端实例B(Client3)和C(Client4) 我从Eureka服务器上得到了日志,这些日志如下: a)他们是什么意思?我的意思是每个客户出现两次 b)更新阈值:5,更新(最后一分钟):8,为什么更新最后一分钟是8,它应该是4?因为只有两个客户端,每个客户端每分钟2拍 c)当我启动第三个服务D(CLient5)时,续订阈值是6,而不是7,这是为什么? d)E
问题内容: 我已经开始开发微服务,尽管我已经进行了一段时间的研究,同时阅读了Spring的文档和Netflix的文档。 我已经开始在Github上进行一个简单的项目。它基本上是一个Eureka服务器(Archimedes)和三个Eureka客户端微服务(一个公共API和两个私有)。查看github的自述文件以获取详细描述。 关键是,当一切都运行时,我希望如果其中一个私有微服务被杀死,Eureka服
我使用的是安装了JRockit的weblogic 10.3.6。我使用的是一个64位系统,Linux操作系统。我在其中安装了一个adf应用程序。只有几个用户使用该应用程序。但是安装WLS的服务器机器每周都会停机,导致内存溢出。所以我们必须每周重新启动它。当我浏览的时候,我发现WebLogic可以通过调整堆大小和其他内存参数来变得更加稳定。 示例:--Xms256m-Xmx512m最大尺寸为128m