我正在尝试使用基于DNS的EIP配置在aws上设置一个eureka集群,如https://github.com/netflix/eureka/wiki/configuring-eureka-in-aws-cloud所述
似乎一切正常,但eureka仪表板坚持认为eureka实例不可用。我现在想知道这仅仅是一个ui问题(我认为是这样的),还是我遗漏了什么。
我理解仪表板中的“unavailable-replicas”逻辑,这是因为eureka正在比较注册主机名和副本主机名。实例在discovery客户端注册了它们的内部VPC ip,但在寻找副本对等体时注册了它们的EIP(很奇怪,在eureka日志中,我可以在内部看到它们也在使用内部VPC ip)。
在相关github问题@rozhok的帮助下,我现在有了一个可行的解决方案。如果有人面临同样的问题,下面是我所做的:
eureka:
datacenter: cloud
client:
eurekaServerDNSName: your.dns.name
eurekaServerPort: 8761
eurekaServerURLContext: eureka
region: eu-west-1
registerWithEureka: true
fetchRegistry: true
useDnsForFetchingServiceUrls: true
server:
waitTimeInMsWhenSyncEmpty: 0
enableSelfPreservation: true
@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class EurekaServer {
@Value("${server.port:8761}")
private int port;
public static void main(String[] args) {
SpringApplication.run(EurekaServer.class, args);
}
@Bean
@Autowired
public EurekaInstanceConfigBean eurekaInstanceConfigBean(InetUtils inetUtils) {
EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(inetUtils);
AmazonInfo info = AmazonInfo.Builder.newBuilder().autoBuild("eureka");
// Don't use spring cloud's hostname here.
// See comment below by Michal
config.setHostname(
info.get(AmazonInfo.MetaDataKey.publicHostname));
config.setIpAddress(info.get(AmazonInfo.MetaDataKey.publicIpv4));
config.setNonSecurePort(port);
config.setDataCenterInfo(info);
return config;
}
}
使用该配置,每个eureka服务器只将其他服务器视为可用副本:
我在Spring有3个微服务: 网飞尤里卡 制片人 消费者 和另一个用Eureka-js-client用NodeJs编写的微服务 null 我的代码怎么了?
我使用Spring Cloud Netflix构建了一个Eureka服务器。服务器正在工作,因此我目前正在尝试添加第二个Eureka服务器,以提高弹性,并在更新服务器时提供备用服务器。 http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html这听起来很简单:你只需要像Eureka客户端一样配置你的服务器。因此,我将其
我正在评估使用Spring Boot和Spring Cloud(Zuul和Eureka)构建微服务,这些微服务运行在单独的docker容器中,部署在单独的Amazon EC2实例中。 我可以使用boot2docker在我的Mac上本地运行(即不在Amazon/EC2),但当部署在EC2上时,Zuul找不到该服务,并报告一个“转发错误”(状态500)。 在EC2中,一切都被配置为在端口80上运行(只
我有三个spring boot微服务,它们使用spring Eureka server和zuul作为网关。我有auth微服务,这是zuul网关,验证用户。我有另外两个服务在不同的端口运行。如果我通过zuul网关调用,我可以在jwt的帮助下保护这两个服务,但由于我知道两个微服务端口和url,我可以直接调用并获得响应,而不需要通过网关url。所以我如何保护这两个微服务。请帮助我分享两个微服务之间的安全
null 这个设置工作良好,但麻烦开始时,我开始玩的缩放服务。当我放大时,Zuul会在30秒后拿起新的服务器。我没意见。但是,当我取下服务容器时,对Zuul的调用可能会失败(HTTP错误代码200!)因为Zuul仍然认为服务器在活动池中。 我使用的是Spring Boot 1.3.6和Spring Cloud 1.1.2 我的问题: null
从Spring Cloud Greenwich发布的公告中,请参见https://spring.io/blog/2019/01/23/spring-cloud-greenwich-release-is-now-available,我注意到建议将Netflix Ribbon替换为Spring Cloud Loadbalancer。 这是否意味着客户端可以使用Spring Cloud负载均衡器连接到在